题目
分析
F12 打开查看器,只有一个 php 文件,URL 为 http://9862c108-f9d1-4746-aeb0-848c1e0d8147.node4.buuoj.cn:81
点 tips 看看,啥也妹有,URL 为 http://9862c108-f9d1-4746-aeb0-848c1e0d8147.node4.buuoj.cn:81/?file=flag.php
完全没有头绪……又能学新东西了!
找到一篇大佬的帖子,说是文件包含漏洞。即 flag 在文件 flag.php 中却没有输出,但由于被包含的文件位于远程服务器上,我们可以通过 PHP 伪协议将 flag.php 文件的内容直接显示出来。
按照 PHP 伪协议的语法,我们将 URL 更改为 9862c108-f9d1-4746-aeb0-848c1e0d8147.node4.buuoj.cn:81/?file=php://filter/read=convert.base64-encode/resource=flag.php
,其中:
9862c108-f9d1-4746-aeb0-848c1e0d8147.node4.buuoj.cn:81/
:初始 URL?
:分隔符file
:根据点击 tip 后的 URL 可知这部分是用来接收 flag.php 的变量php://filter
:一种访问本地文件的协议,其中php://
用于访问各个输入/输出流read=convert.base64-encode
:读取的方式是 base64 编码。如果不进行 base64 编码传输,flag.php 就会直接执行,效果和点击 tips 相同resource=flag.php
:目标文件为 flag.php
执行之后我们获得一串 base64 的编码:
在 hackbar 中解码后得到 flag.php 文件内容:
flag 在文件中的注释部分,复制 flag 提交即可。
Flag
flag{eaf6d184-1f7d-4b36-aa2e-a6f06ed3dc2a}
参考
[ACTF2020 新生赛]Include 1解题思路-Loong-Lee-CSDN
ctf-web:PHP伪协议-学安全的小白-博客园