解题过程
1、在打开的页面中,我们没有发现明显的链接和提示信息,所以查看该页面的原始代码,在其中发现了一个隐藏的页面提示信息——href=Secret.php :
2、修改URL来访问该页面(URL= node4.buuoj.cn:25704/Secret.php),并且抓包分析回显代码:
在回显内容中,出现了一段话:It doesn't come from 'https://Sycsecret.buuoj.cn' ,提示我们需要修改当前请求的发起页面,使发起页面为https://Sycsecret.buuoj.cn’,于是我们在原始请求头中加入请求报头消息:Referer: https://Sycsecret.buuoj.cn ,即:
3、得到回显代码:
其中得到信息:Please use "Syclover" browser ,提示我们需要使用"Syclover"来作为浏览器访问服务器端,于是我们修改请求报头消息中的User-Agent ,将其中Firefox/52.0 修改为Syclover :
4、在会显的代码中出现了提示信息——“No!!! you can only read this locally!!!”:
提示我们需要从本地去请求,即使服务器端读取我们的IP 为本地地址(127.0.0.1),故加入请求报头消息:X-Forwarded-For: 127.0.0.1 :
得到答案:
小结
本题考验的是对HTTP 协议的熟悉程度,通过修改请求报头信息来一步步得到最终答案,在解题过程中,前两步较为顺利,最后的一步中,由于对X-Forwarded-For 的作用不太熟悉,导致卡壳,最后查阅相关的知识才解出改题目。其中X-Forwarder-For 还可以与SQL 注入相结合,可以参考文章:利用X-Forwarded-For伪造客户端IP漏洞成因及防范、X-Forwarded-For注入漏洞实战
|