[SWPUCTF 2025 秋季新生赛]ezez_include【小白详细】【两种方法】

复建行动,好久没写了,手生了有点,写写新生赛巩固加找找手感吧

[SWPUCTF 2025 秋季新生赛]ezez_include

题目地点:NSSCTF 在线 CTF 平台

参考大佬:

题目

解答

1. 文件上传漏洞【LFI】

a. 首先,先空提交看看情况,了解文件的基本位置逻辑

  1. Warning: include(): Filename cannot be empty in /var/www/html/index.php on line 91
    翻译:警告:在 /var/www/html/index.php 的第91行,include() 函数的文件名参数不能为空。
  2. 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,我们就可以去访问一下试试

ⅰ. 使用方法顺便提一下
  1. 基础扫描目标网站
dirsearch -u http://你的目标网站地址

会自动扫描常见的目录和文件路径。

  1. 指定扫描文件类型
dirsearch -u http://你的目标网站地址 -e php,html,js,txt

仅扫描.php.html等指定后缀的文件,减少无效结果。

  1. 使用自定义字典扫描
dirsearch -u http://你的目标网站地址 -w /path/to/你的字典文件

替换/path/to/你的字典文件为你准备的字典路径,提升扫描精准度。

  1. 递归扫描子目录
dirsearch -u http://你的目标网站地址 -r

会自动扫描发现的子目录,适合深度探测网站结构。

  1. 保存扫描结果到文件
dirsearch -u http://你的目标网站地址 -o result.txt

将扫描结果输出到result.txt文件,方便后续分析。

d. 使用upload.php访问一下试试

看这个回显,是让我们要去上传文件(大概率会出现文件上传漏洞)

在选择文件上传时,发现只允许上传文件名问.jpg的文件【白名单绕过】

e. 制作图片马并上传

上传之后的文件应该会上传到upload/的文件下面,上传成功后,可以回原页面去读取,发现只回显出简单一行字

ⅰ. 简单介绍图片马

制作图片马常用的五种方法总结_图片马制作-CSDN博客

  • 图片马在图片中插入一句话木马,正常情况下图片马上传到服务器无法进行解析,需要配合其他漏洞进行下一步利用。
  1. 通过图片上传并利用 .htaccess 配置进行代码执行;
  2. 通过文件包含漏洞包含图片马并执行恶意代码;
f. 利用蚁剑连接

要注意:

1.这里的蚁剑链接路径在木马执行页面也就是index.php

2.只要输入你想读取的文件,然后点击read,body中就会有nss=你输入的文件

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

2. 日志文件包含漏洞

a. 先知道什么是日志包含

文件日志包含漏洞-CSDN博客

ⅰ. 使用指南

就是把恶意代码塞在日志中,然后利用包含漏洞读取日志时就可以查看了

ⅱ. 原因

某php文件存在本地文件包含漏洞,但无法上传文件,利用包含漏洞包含Apache(看服务器是Apache还是nginx)日志文件也可以获取WebShell

  • apache一般是/var/log/apache/access.log
  • nginx的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还可以用伪协议去读取源代码。。这个我再学一学。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值