官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
HW期间,为防范钓鱼,即日起FreeBuf将取消投稿文章的一切外部链接。给您带来的不便,敬请谅解~
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