Web_BUUCTF_WriteUp | [ACTF2020 新生赛]Include

发布时间 2023-11-13 23:20:00作者: Guanz

题目

分析

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伪协议-学安全的小白-博客园