> 文章列表 > HTTP伪造

HTTP伪造

HTTP伪造

打开后是一个精美的页面,再精美也没啥用,先查看源码吧

HTTP伪造

可以看到这里有个点击触发的a标签,点进去后

HTTP伪造

提示我不来自https://Sycsecret.buuoj.cn,结合题目是HTTP,立刻就想到了HTTP请求头伪造

HTTP伪造

抓包,本身是没有Referer字段的,这里可以自行添上,模拟发包后又出现回显提示,说请使用Syclover浏览器访问

HTTP伪造

可以尝试更改User-Agent字段的信息,结果又说我只能在本地访问,这里就不会了

HTTP伪造

经过查找扩展了有关信息,虽然之前也遇到过,但是选择性忘记了

X-Forwarded-For

X-Forwarded-For (XFF) 在客户端访问服务器的过程中如果需要经过HTTP代理或者负载均衡服务器,可以被用来获取最初发起请求的客户端的IP地址

X-Forwarded-For 是一个 HTTP 扩展头部。用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,X-Forwarded-For 请求头格式非常简单:

X-Forwarded-For: client, proxy1, proxy2

可以看到,XFF 的内容由「英文逗号 + 空格」隔开的多个部分组成,最开始的是离服务端最远的设备 IP,然后是每一级代理设备的 IP。

在上面这个例子中,这个请求成功通过了三台代理服务器:proxy1, proxy2 及 proxy3。请求由client1发出,到达了proxy3(proxy3可能是请求的终点)。请求刚从client1中发出时,XFF是空的,请求被发往proxy1;通过proxy1的时候,client1被添加到XFF中,之后请求被发往proxy2;通过proxy2的时候,proxy1被添加到XFF中,之后请求被发往proxy3;通过proxy3时,proxy2被添加到XFF中,之后请求的的去向不明,如果proxy3不是请求终点,请求会被继续转发。

抄个例子:

用户的 IP 为(A),分别经过两个代理服务器(B,C),最后到达 Web 服务器,那么Web 服务器接收到的 X-Forwarded-For 就是 A,B。

所以我们就可以伪造X-Forwarded-For信息,使它经过127.0.0.1本地ip,达到本地预览的结果

成功获取flag,以后在头部添加字段还是要插入到原字段里去添加,不然会报错

HTTP伪造