极客大挑战 2019 Http 1

打开网站,打开源代码,会发现一个secret.php的东西,然后打开,会发现说不是https://www.Sycsecret.com这个网址来的,所以打开burp,修改referer头,在repeater里面尝试,会发现说不是Syclover这个浏览器,所以修改浏览器信息,然后再send,发现说必须本地打开才行,所以添加X Forwarded-For,改为:

X-Forwarded-For:127.0.0.1
或者X-Forwarded-For:localhost

然后send就会返回flag

总结:
考查burp的使用和http数据报相关知识

HTTP X-Forwarded-For 介绍: X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1(RFC
2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实
IP。如今它已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded
HTTP Extension)标准之中。 如果一个 HTTP 请求到达服务器之前,经过了三个代理
Proxy1、Proxy2、Proxy3,IP 分别为 IP1、IP2、IP3,用户真实 IP 为 IP0,那么按照 XFF
标准,服务端最终会收到以下信息:

php X-Forwarded-For: IP0, IP1, IP2

Proxy3 直连服务器,它会给 XFF 追加 IP2,表示它是在帮 Proxy2 转发请求。列表中并没有 IP3,IP3 可以在服务端通过
Remote Address 字段获得。我们知道 HTTP 连接基于 TCP 连接,HTTP 协议中没有 IP 的概念,Remote
Address 来自 TCP 连接,表示与服务端建立 TCP 连接的设备 IP,在这个例子里就是 IP3。

Remote Address 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的
HTTP 请求。不同语言获取 Remote Address 的方式不一样,例如 php 是
$_SERVER[“REMOTE_ADDR”],Node.js 是 req.connection.remoteAddress,但原理都一样。

你可能感兴趣的:(CTF,网络安全)