FoxCMS最新版本代码注入RCE漏洞
字数 1687 2025-08-29 08:30:36
FoxCMS v1.2.5 漏洞分析与利用指南
1. 系统概述
FoxCMS是一套可免费商用的开源内容管理系统,采用PHP+MySQL架构。主要特点包括:
- 内置企业常用内容模型(单页、文章、产品、图集、视频、反馈、下载等)
- 丰富的模板标签及强大的SEO和伪静态优化机制
- 支持多语言、表单设计、访客统计、消息通知、云存储服务
- 无需复杂编程技能,仅需掌握HTML即可快速构建应用
源码地址:https://gitee.com/qianfox/foxcms
2. 代码注入漏洞(RCE)
2.1 漏洞位置
- 控制器文件:
app\admin\controller\Config.php - 漏洞函数:
save() - 关键函数:
set_php_arr(将变量值拼接写入php文件)
2.2 漏洞分析
save()函数接收的参数完全可控- 通过
set_php_arr函数将参数值直接拼接写入PHP文件 - 写入的文件路径:
config\cfg\base.php - 由于
index.php包含了config\cfg\base.php,写入的代码会被执行
2.3 漏洞利用步骤
- 登录后台,进入"站点基本设置"
- 点击保存并抓包
- 修改参数
copyright_remove_mark为恶意代码,例如:";phpinfo();// - 访问首页
index.php,代码将被执行
2.4 危害
- 任意代码执行
- 可反弹shell获取服务器权限
- 完全控制服务器
3. SSRF漏洞(服务器端请求伪造)
3.1 漏洞位置
- 控制器文件:
app\admin\controller\PicManager.php - 关键方法:
getImg()->download()->get_url_content()
3.2 漏洞分析
download()方法的url参数完全可控- 通过
get_url_content方法直接使用cURL请求URL - 文件名从URL获取,无任何过滤
- 文件内容通过
file_put_contents写入uploads/date("Ymd")/目录 - 虽然上传时有白名单检查,但SSRF请求已经完成
3.3 漏洞利用
3.3.1 攻击内网服务
- 构造恶意URL指向内网服务
- 在"公司简介"->"添加图片"->"选择网络图提取"
- 提交恶意URL,如:
http://内网IP/2.php(2.php包含恶意代码)
3.3.2 读取任意文件
- 使用
file://伪协议 - 构造URL如:
file:///etc/passwd - 文件内容将被写入上传目录
3.4 危害
- 读取服务器任意文件
- 扫描内网端口和服务
- 攻击内网应用
- 结合其他漏洞实现更复杂的攻击
4. 文件上传漏洞(XSS)
4.1 漏洞位置
- 文件上传功能
- 关键检查函数:
validationSuffix
4.2 漏洞分析
- 系统使用白名单检查文件后缀
- 允许上传
.svg文件 - 未检查文件内容,导致可上传恶意SVG文件
4.3 漏洞利用
- 制作恶意SVG文件,包含XSS代码,例如:
<svg xmlns="http://www.w3.org/2000/svg" onload="alert(1)"/> - 登录后台,上传SVG文件
- 访问该文件时触发XSS
4.4 危害
- 存储型XSS攻击
- 窃取管理员cookie
- 进行钓鱼攻击
- 结合其他漏洞提升攻击效果
5. 漏洞修复建议
-
代码注入漏洞修复:
- 对写入PHP文件的内容进行严格过滤
- 避免直接将用户输入拼接进PHP文件
- 使用序列化或JSON格式存储配置
-
SSRF漏洞修复:
- 限制URL协议(禁用file://等危险协议)
- 实现URL白名单机制
- 对下载的文件内容进行严格检查
-
文件上传漏洞修复:
- 对SVG文件内容进行检查
- 实现内容安全策略(CSP)
- 对上传文件设置更严格的白名单
-
通用建议:
- 及时更新到最新版本
- 最小权限原则运行服务
- 定期进行安全审计
6. 总结
FoxCMS v1.2.5存在多个高危漏洞,攻击者可利用这些漏洞实现:
- 通过代码注入获取服务器完全控制权
- 利用SSRF探测和攻击内网
- 通过恶意文件上传实施XSS攻击
这些漏洞的组合利用可造成严重后果,建议用户立即采取防护措施或升级到修复版本。