[极客大挑战 2019]HTTP 思路及解法 大家好那么可以叫我凌是个16岁的网络安全学习者。今天我们来做 [极客大挑战 2019]HTTP 这道题目顺便来讲讲我的做题思路做题思路我们先启动靶场看见靶场提供了以下两个内容ncat --ssl 89cbe2e158b960ac68f631cc.tcp-ctf2.dasctf.com 9999remote(89cbe2e158b960ac68f631cc.tcp-ctf2.dasctf.com, 9999, sslTrue)与以往不同这次它给了个 SSL加密的TCP隧道地址。(SSL加密会保护传输数据通常需要验证证书)既然不是网页那我们就直接上CURL看看。带上参数 k 忽略SSL证书验证curl -k https://89cbe2e158b960ac68f631cc.tcp-ctf2.dasctf.com:9999返回的是个网页。得出这个SSL端口背后就是个正常的Web服务器并不是交互式终端。观察返回的代码发现以下内容html a hrefSecret.php styledisplay:none.../a /html那我们直接访问看看curl -k https://89cbe2e158b960ac68f631cc.tcp-ctf2.dasctf.com:9999/Secret.php显示并不是来自 https://Sycsecret.buuoj.cn 这个地址那我们就修改请求包欺骗目标我们是从这个网站过来的curl -k https://89cbe2e158b960ac68f631cc.tcp-ctf2.dasctf.com:9999/Secret.php -H Referer: https://Sycsecret.buuoj.cn出现了 Please use Syclover browser 这个东西说明我们成功欺骗了目标不过只成功一半。因为浏览器不对被拦截了那我们继续修改请求包。添加上“User-Agent”请求头curl -k https://89cbe2e158b960ac68f631cc.tcp-ctf2.dasctf.com:9999/Secret.php -H Referer: https://Sycsecret.buuoj.cn -H User-Agent:Syclover看来有效果了不过又显示 “No!!! you can only read this locally!!!” 。看来又要修改请求头来欺骗目标我们是本地的。那就添加 X-Forwarded-For 请求头搭配回环地址看看。curl -k https://89cbe2e158b960ac68f631cc.tcp-ctf2.dasctf.com:9999/Secret.php -H Referer: https://Sycsecret.buuoj.cn -H User-Agent:Syclover -H X-Forwarded-For:127.0.0.1这样子我们就轻轻松松拿下了Flag靶场小结考点标签HTTP协议、请求头伪造、信息收集、源码分析核心教训1. 入口不一定在首页这道题的 Flag 藏在 Secret.php 里但页面上并没有直接链接需要通过分析源码F12才能发现隐藏的 a 标签。2. 每一个请求头都可能是钥匙服务器通过请求头来验证来访者的身份。你需要伪造 Referer、User-Agent、X-Forwarded-For来满足它的条件。3. curl 是手工测试的利器不依赖浏览器直接用 curl 配合 -H 参数可以精确控制每一个请求头是渗透测试中最干净、最可控的工具。解题关键步骤- 第一步信息收集用 curl 访问首页在返回的 HTML 源码中发现 a hrefSecret.php 隐藏链接。- 第二步伪造请求头依次伪造 Referer来源页、User-Agent指定浏览器、X-Forwarded-For伪造本地IP去请求 Secret.php。