【题目描述】
X老师告诉小宁其实xff和referer是可以伪造的。
【附件】
在线场景
【过程及思路】
打开在线场景后,出现如下提示:
服务器那边要求我们的原始ip是123.123.123.123,我们明显不是这么一个ip,怎么办呢?
题目告诉我们xff和referer可以伪造,那么什么是xff和referer呢?
*给出的解释:
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP头字段。
Referer 请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 请求头识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等。
简单来说,xff和referer是HTTP协议首部中的两个字段,分别指出发送方最原始的IP地址,和你从哪个页面的链接进入的这个页面。
网络代理和负载均衡是常用的技术手段,他们发出的请求所带ip不再是原始发送方的ip。所以,为了识别这个请求最开始是谁发出的,我们就引入了这两个字段。
然而,他们却是可以被人工伪造的,下面我们使用Burp Suite这个抓包工具来操作一下。
进入Proxy-Intercept栏进行抓包。(Intercept的配置和使用建议参考官方文档或其翻译版)
在左侧新添一行:
X-Forwarded-For: 123.123.123.123
点击"Forward"按钮发送包,得到下一步提示。
同样的,在原来的基础上再添一行:
Referer: https://www.google.com
发送后得到flag。
是不是很简单。
本题中,我们使用Burp Suite对常见的原始ip和页面来源字段xff和referer进行伪造,达到绕过某种Web服务器的弱检查的效果。
【答案】
如果文章对你有帮助,就动动手指点赞、喜欢、支持一下咖啡猫吧,谢谢!