[SWPUCTF 2025 秋季新生赛]ezez_include两种详细解法
[SWPUCTF 2025 秋季新生赛]ezez_include
方法一:日志文件包含
一开始考虑的是文件上传,dirsearch扫描出来有upload页面
结果根据响应页面这个版本的文件上传漏洞完全做不出来,服务器解析不了
换个思路,文件包含

利用日志包含漏洞
什么是日志包含漏洞:就是把恶意代码塞在日志中,然后利用包含漏洞读取日志时就可以查看了
过程:(针对于访问日志)
1.发送访问请求:
修改 User-Agent 或访问带代码的 URL
服务器会自动把你的请求写进磁盘上的日志文件
1 | User-Agent:<?php phpinfo(); ?> |
2.访问日志:
利用漏洞include 这个日志文件
/var/log/nginx/access.log

payload:
改ua和nss

方法二:文件上传漏洞
写完看了一下大佬们的题解,发现其实我尝试过蚁剑连接中就差一个步骤就成功了:因为我没有真正激活木马
很容易发现文件(这里指jpg文件,估计是白名单过滤)上传成功之后,我们点击back回到index页面,继续输入成功的upload/shell.jpg上传路径,页面回显居然就是如图所示简单的一行字
->说明是正常存入木马了而且php解析成功(不然就是400报错了)
但是我们蚁剑连接的页面在哪儿呢?
要注意:这里的蚁剑链接路径在木马执行页面也就是index.php,但是我们不能忘记一些参数:
比如说你刚开始在抓包的时候,发现了只要输入你想读取的文件,然后点击read,body中就会有
1 | nss=你输入的文件 |
木马虽然在 upload/shell.jpg 里,但它只是一个死文件
我们找到的真正木马执行的地方->也就要加入参数nss=upload/shell.jpg,这时候相当于手动点击了read按钮
这样index.php就能运行木马了

之后就找flag吧:在根目录下

知识点补充:
日志漏洞利用的另外一种方法
Error Log(错误日志)
当服务器处理请求出错(如 404 Not Found, 403 Forbidden, 或 PHP 运行报错)时,相关信息写入 error.log。
如果你请求一个不存在的文件:
GET /non_existent_<?php phpinfo(); ?>error.log会记录:[error] [client 192.168.1.1] File does not exist: /var/www/html/non_existent_<?php phpinfo(); ?>差异性:有些 Apache 配置会对 URL 路径进行转义(Encoding),导致
access.log里的<变成\x3c。但在
error.log的错误路径描述中,有时能保持原始字符。
然后在文件包含漏洞中查看/var/log/apache(这里不同服务器名字不一样)/error.log即可

