复建行动,好久没写了,手生了有点,写写新生赛巩固加找找手感吧
[SWPUCTF 2025 秋季新生赛]ezez_include
题目地点:NSSCTF 在线 CTF 平台
参考大佬:
- [SWPUCTF 2025 秋季新生赛]ezez_include两种解题思路-CSDN博客
- 以及多个大佬的wp合成的结果
题目

解答
1. 文件上传漏洞【LFI】
a. 首先,先空提交看看情况,了解文件的基本位置逻辑

Warning: include(): Filename cannot be empty in /var/www/html/index.php on line 91
翻译:警告:在 /var/www/html/index.php 的第91行,include() 函数的文件名参数不能为空。Warning: include(): Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/index.php on line 91
翻译:警告:在 /var/www/html/index.php 的第91行,无法打开空字符串来执行引入操作,当前PHP的文件引入检索路径配置为.:/usr/local/lib/php。
b. 试试读取他的警示index.php

有点类似于循环,
c. 使用disearch扫描一下试试
【注意,没思路可以都去试试,虽然有时候会被限制】

扫描到了这个upload.php,我们就可以去访问一下试试
ⅰ. 使用方法顺便提一下
- 基础扫描目标网站
dirsearch -u http://你的目标网站地址
会自动扫描常见的目录和文件路径。
- 指定扫描文件类型
dirsearch -u http://你的目标网站地址 -e php,html,js,txt
仅扫描.php、.html等指定后缀的文件,减少无效结果。
- 使用自定义字典扫描
dirsearch -u http://你的目标网站地址 -w /path/to/你的字典文件
替换/path/to/你的字典文件为你准备的字典路径,提升扫描精准度。
- 递归扫描子目录
dirsearch -u http://你的目标网站地址 -r
会自动扫描发现的子目录,适合深度探测网站结构。
- 保存扫描结果到文件
dirsearch -u http://你的目标网站地址 -o result.txt
将扫描结果输出到result.txt文件,方便后续分析。
d. 使用upload.php访问一下试试

看这个回显,是让我们要去上传文件(大概率会出现文件上传漏洞)
在选择文件上传时,发现只允许上传文件名问.jpg的文件【白名单绕过】

e. 制作图片马并上传
上传之后的文件应该会上传到upload/的文件下面,上传成功后,可以回原页面去读取,发现只回显出简单一行字
ⅰ. 简单介绍图片马
- 图片马在图片中插入一句话木马,正常情况下图片马上传到服务器无法进行解析,需要配合其他漏洞进行下一步利用。
- 通过图片上传并利用 .htaccess 配置进行代码执行;
- 通过文件包含漏洞包含图片马并执行恶意代码;
f. 利用蚁剑连接
要注意:
1.这里的蚁剑链接路径在木马执行页面也就是index.php
2.只要输入你想读取的文件,然后点击read,body中就会有nss=你输入的文件


连接成功后就可以去找flag了

2. 日志文件包含漏洞
a. 先知道什么是日志包含
ⅰ. 使用指南
就是把恶意代码塞在日志中,然后利用包含漏洞读取日志时就可以查看了
ⅱ. 原因
某php文件存在本地文件包含漏洞,但无法上传文件,利用包含漏洞包含Apache(看服务器是Apache还是nginx)日志文件也可以获取WebShell
apache一般是/var/log/apache/access.lognginx的log在/var/log/nginx/access.log(访问日志)和/var/log/nginx/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(); ?>
ⅲ. 过程(针对于访问日志)
日志包含漏洞检测与利用方法-CSDN博客这个也有详细过程
1.发送访问请求:
修改 User-Agent 或访问带代码的 URL
服务器会自动把你的请求写进磁盘上的日志文件


注意:请求的信息有可能被url编码之后记录日志,这里可以通过burp来发送请求包来防止被编码,通过相对路径找到日志文件,利用包含漏洞执行。
2.访问日志:
利用漏洞include 这个日志文件
/var/log/nginx/access.log或/var/log/apache/access.log
3.查看日志

ⅳ. 什么时候使用这个日志包含漏洞
这也属于文件包含的一种,
存在本地包含漏洞,缺又无法上传文件,或者无法读取
比如:


ⅴ. 如何判断一个网站是用的Nginx,还是Apache
如何判断一个网站是用的Nginx,还是Apache_怎么查看网站是否是apache开发-CSDN博客
curl --head 域名/IP
curl --head www.baidu.com (举例,注意:--head前有空格)
ⅵ. 练习题
ctfshow -web-4
b. 开始尝试这道题,读取

c. 发送访问请求

d. 访问日志/var/log/nginx/access.log


发现phpinfo出现了在日志里头了,可以实行
e. 接下来修改重新发送新的请求
注意,新的日志信息肯定在这个大图片后面(我一开始没看见)
user-agent:<?php echo('ls'); ?>
然后重新访问日志,就可以看见目录,找到

f. 直接读取这个目录/ffffflalalalalalalalalg

g. 题外,不一定这样,也可以使用其他的代码,只要能访问就行

总结
看这道题,首先在看题无思路时,可以试试扫描啊,万一有啥发现呢,其次,文件上传漏洞,无非就是改后缀名,或者骗前端,白名单、黑名单绕过,bp绕过之类的,以此达到成功上传并且读取,亦或者用蚁剑连接找他的flag
这题出现了我没接触过的日志包含,在传统思路上提供新方向,可以根据他的日志来 读取flag
题外,看他们wp还可以用伪协议去读取源代码。。这个我再学一学。。。
442

被折叠的 条评论
为什么被折叠?



