CTF-- 基于 X-Forwarded-For 的 IP 地址伪造
X-Forwarded-For 以及其作用
一般的客户端(例如:浏览器)在发送 HTTP 请求时,并不会设置 X-Forwarded-For 头,当请求在到达第一个代理服务器时,代理服务器会在请求字段中加上 X-Forwarded-For 这个字段,并将其值设置为客户端的 IP 地址,后面如果还有更多的代理服务器,会依次将 Ip 地址追加到 X-Forwarded-For 这个字段中,最终当请求到达了 Web 应用服务器,应用会通过获取 X-Forwarded-For 头取出最左边的 IP 地址,即为客户端的真实 IP 地址。
如果客户端在发起请求时,请求头上带上一个伪造的 X-Forwarded-For,由于后续每层代理只会追加而不会覆盖,那么最终到达应用服务器时,最左边的 IP 地址就是客户端伪造的 IP 地址。
这个利用方法可以绕过一些针对 IP 地址进行限制的应用,例如:投票等应用
具体实操
查看题目
分析题目
1.打开页面,发现是一个登录页面
2.使用 F12 查看网页原代码以及注释,看有没有什么比较重要有价值的信息,然而并没有。
3.随便输入账号和密码,返回账号不存在。
这就要想办法搞到一个账号和密码,登录进去看看。
查看提示发现,该网站存在一个测试(test)账户,那就试试这个账号和密码(均为 test)。
哎呀,登录成功了!!!
如果没有猜出账号和密码,也可以使用暴力破解的方法枚举出账号和密码。
4.返回信息提示”此系统只允许台湾居民访问,你所在地区被禁止登录“,可以推断这种限制是基于 IP 地址所在地,那我们就可以利用上面介绍的原理进行 IP 地址伪造,从而绕过这种限制。
5.搜索一个台湾地区使用的 ip 地址
6.使用 burp 进行 http 请求头的修改
7.获取到了该题目的 key
靶场环境
墨者学院的在线靶场:
IP 地址伪造:https://www.mozhe.cn/bug/detail/anpNUjlodFVuMmtOYnM3T1grcG56QT09bW96aGUmozhe
评论