[极客大挑战 2019]Http 1
解题过程
打开靶机:
没有什么发现,找一下代码源,有点多,但是仔细找回发现一个secret.php
他说我不是从上面那个网站来的,联想到报文header中的Referer。
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,
服务器因此可以获得一些信息用于处理。Referer 常用在防盗链和防恶意请求中。传输referer需要在页面内添加相关的代码。
解决的办法是用bp抓包,然后改一下header,添加:
Referer:https://www.Sycsecret.com
只能从本地访问。那么访问的ip就是127.0.0.1。可以添加X-Forwarded-For,伪造原始访问ip是127.0.0.1
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
当今多数缓存服务器的用户为大型ISP,为了通过缓存的方式来降低他们的外部带宽,他们常常通过鼓励或强制用户使用代理服务器来接入互联网。
有些情况下,这些代理服务器是透明代理,用户甚至不知道自己正在使用代理上网。
如果没有XFF或者另外一种相似的技术,所有通过代理服务器的连接只会显示代理服务器的IP地址,而非连接发起的原始IP地址,
这样的代理服务器实际上充当了匿名服务提供者的角色,如果连接的原始IP地址不可得,恶意访问的检测与预防的难度将大大增加。
如果你使用透明代理上网,那么在透明代理发送给服务器端的HTTP请求中会包含x-forward-for信息
简单来说就是用来传输最原始ip地址的,阻止匿名请求的,但是可以通过抓包来修改。
ip伪造的方法(偷来的笔记):
Client-Ip: 127.0.0.1
X-Forwarded-For: 127.0.0.1
Host: 127.0.0.1
Referer: www.google.com