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 漏洞分析

  1. save()函数接收的参数完全可控
  2. 通过set_php_arr函数将参数值直接拼接写入PHP文件
  3. 写入的文件路径:config\cfg\base.php
  4. 由于index.php包含了config\cfg\base.php,写入的代码会被执行

2.3 漏洞利用步骤

  1. 登录后台,进入"站点基本设置"
  2. 点击保存并抓包
  3. 修改参数copyright_remove_mark为恶意代码,例如:
    ";phpinfo();//
    
  4. 访问首页index.php,代码将被执行

2.4 危害

  • 任意代码执行
  • 可反弹shell获取服务器权限
  • 完全控制服务器

3. SSRF漏洞(服务器端请求伪造)

3.1 漏洞位置

  • 控制器文件:app\admin\controller\PicManager.php
  • 关键方法:getImg() -> download() -> get_url_content()

3.2 漏洞分析

  1. download()方法的url参数完全可控
  2. 通过get_url_content方法直接使用cURL请求URL
  3. 文件名从URL获取,无任何过滤
  4. 文件内容通过file_put_contents写入uploads/date("Ymd")/目录
  5. 虽然上传时有白名单检查,但SSRF请求已经完成

3.3 漏洞利用

3.3.1 攻击内网服务

  1. 构造恶意URL指向内网服务
  2. 在"公司简介"->"添加图片"->"选择网络图提取"
  3. 提交恶意URL,如:http://内网IP/2.php(2.php包含恶意代码)

3.3.2 读取任意文件

  1. 使用file://伪协议
  2. 构造URL如:file:///etc/passwd
  3. 文件内容将被写入上传目录

3.4 危害

  • 读取服务器任意文件
  • 扫描内网端口和服务
  • 攻击内网应用
  • 结合其他漏洞实现更复杂的攻击

4. 文件上传漏洞(XSS)

4.1 漏洞位置

  • 文件上传功能
  • 关键检查函数:validationSuffix

4.2 漏洞分析

  1. 系统使用白名单检查文件后缀
  2. 允许上传.svg文件
  3. 未检查文件内容,导致可上传恶意SVG文件

4.3 漏洞利用

  1. 制作恶意SVG文件,包含XSS代码,例如:
    <svg xmlns="http://www.w3.org/2000/svg" onload="alert(1)"/>
    
  2. 登录后台,上传SVG文件
  3. 访问该文件时触发XSS

4.4 危害

  • 存储型XSS攻击
  • 窃取管理员cookie
  • 进行钓鱼攻击
  • 结合其他漏洞提升攻击效果

5. 漏洞修复建议

  1. 代码注入漏洞修复

    • 对写入PHP文件的内容进行严格过滤
    • 避免直接将用户输入拼接进PHP文件
    • 使用序列化或JSON格式存储配置
  2. SSRF漏洞修复

    • 限制URL协议(禁用file://等危险协议)
    • 实现URL白名单机制
    • 对下载的文件内容进行严格检查
  3. 文件上传漏洞修复

    • 对SVG文件内容进行检查
    • 实现内容安全策略(CSP)
    • 对上传文件设置更严格的白名单
  4. 通用建议:

    • 及时更新到最新版本
    • 最小权限原则运行服务
    • 定期进行安全审计

6. 总结

FoxCMS v1.2.5存在多个高危漏洞,攻击者可利用这些漏洞实现:

  • 通过代码注入获取服务器完全控制权
  • 利用SSRF探测和攻击内网
  • 通过恶意文件上传实施XSS攻击

这些漏洞的组合利用可造成严重后果,建议用户立即采取防护措施或升级到修复版本。

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 为恶意代码,例如: 访问首页 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文件 访问该文件时触发XSS 4.4 危害 存储型XSS攻击 窃取管理员cookie 进行钓鱼攻击 结合其他漏洞提升攻击效果 5. 漏洞修复建议 代码注入漏洞修复 : 对写入PHP文件的内容进行严格过滤 避免直接将用户输入拼接进PHP文件 使用序列化或JSON格式存储配置 SSRF漏洞修复 : 限制URL协议(禁用file://等危险协议) 实现URL白名单机制 对下载的文件内容进行严格检查 文件上传漏洞修复 : 对SVG文件内容进行检查 实现内容安全策略(CSP) 对上传文件设置更严格的白名单 通用建议: 及时更新到最新版本 最小权限原则运行服务 定期进行安全审计 6. 总结 FoxCMS v1.2.5存在多个高危漏洞,攻击者可利用这些漏洞实现: 通过代码注入获取服务器完全控制权 利用SSRF探测和攻击内网 通过恶意文件上传实施XSS攻击 这些漏洞的组合利用可造成严重后果,建议用户立即采取防护措施或升级到修复版本。