某最新版cms审计之前台到getshell历程
字数 1304 2025-08-29 08:32:09

某CMS前台到Getshell漏洞审计与分析

前言

本文详细分析某CMS系统中存在的多个安全漏洞,包括前台变量覆盖、后台任意文件删除、文件上传漏洞等,最终通过组合利用这些漏洞实现从前台到Getshell的攻击路径。这些漏洞已提交CNVD,部分漏洞至今仍未修复。

漏洞概述

该CMS系统存在以下关键漏洞:

  1. 后台任意文件删除漏洞
  2. 后台文件上传漏洞
  3. 后台跨目录解压漏洞
  4. 前台变量覆盖漏洞(可导致XSS攻击)

详细漏洞分析

1. 后台任意文件删除漏洞

漏洞位置***fo/app/system/databack/admin/index.class.php 第821~836行

漏洞描述

  • $file参数可控且未进行过滤
  • 可进行任意目录遍历和文件删除

漏洞代码分析

// 代码中$file参数未过滤直接使用
// 允许通过../进行目录遍历

复现方法
构造恶意请求删除服务器上任意文件

2. 后台文件上传漏洞

漏洞位置upfilety.php 第269行开始

漏洞描述

  • 默认上传类型为sql
  • 允许上传zip文件并解压
  • 当zip内文件非sql时仅输出提示信息而不终止上传
  • 可上传任意文件

漏洞代码分析

// 312~328行处逻辑缺陷
if(zip内文件非sql){
    // 仅输出提示信息
    echo "压缩包里的文件非sql文件";
    // 未终止上传流程
    exit; // 但文件已上传完成
}

特殊发现
开发者在代码中将"后缀"(houzhui)误写为"houzui"

3. 后台跨目录解压漏洞

漏洞描述

  • 与漏洞1、2类似
  • $file参数可控且未过滤../
  • 可解压文件到任意目录

利用方法
结合漏洞2的文件上传,可将恶意文件解压到web目录实现Getshell

4. 前台变量覆盖漏洞

漏洞位置

  1. admin/login/login_check.php 加载了 /admin/include/common.inc.php
  2. /admin/include/common.inc.php 存在变量覆盖问题

漏洞描述

  • 可实现变量覆盖
  • 可覆盖$url_array变量
  • 导致XSS攻击

EXP示例

http://127.0.0.1/***info/admin/login/login_check.php?url_array[]=123&url_array[]=123&url_array[]=aa%22+autofocus+onfocus=alert(2)+a=%0a%0ba=&url_array[]=123

攻击流程

  1. 管理员正常登录后,authcode加密的值会被取出并解密
  2. 解密后的值输出在app/system/safe/admin/templates/index.php
  3. 无需登录即可触发XSS
  4. 当管理员访问后台"安全与效率"界面时自动触发XSS
  5. 可窃取管理员Cookie

组合利用攻击链

  1. 获取后台权限

    • 利用前台变量覆盖漏洞触发XSS
    • 窃取管理员Cookie
    • 获得后台访问权限
  2. Getshell

    • 利用后台任意文件删除漏洞清除障碍
    • 利用文件上传漏洞上传恶意zip文件
    • 利用跨目录解压漏洞将恶意文件解压到web目录
    • 最终获得服务器控制权限

防御建议

  1. 输入验证

    • 对所有用户输入进行严格过滤
    • 禁止../等目录遍历字符
    • 对文件操作参数进行白名单验证
  2. 安全编码

    • 修复变量覆盖问题
    • 确保上传逻辑严谨
    • 解压前验证文件内容和目标路径
  3. 权限控制

    • 后台操作需要二次验证
    • 文件操作限制在特定目录
  4. 安全配置

    • 设置合理的文件权限
    • 禁用危险函数

总结

该CMS系统存在多处严重安全漏洞,通过组合利用这些漏洞可以实现从前台到Getshell的完整攻击链。开发人员应重视安全编码规范,对所有用户输入进行严格验证,并定期进行安全审计。

某CMS前台到Getshell漏洞审计与分析 前言 本文详细分析某CMS系统中存在的多个安全漏洞,包括前台变量覆盖、后台任意文件删除、文件上传漏洞等,最终通过组合利用这些漏洞实现从前台到Getshell的攻击路径。这些漏洞已提交CNVD,部分漏洞至今仍未修复。 漏洞概述 该CMS系统存在以下关键漏洞: 后台任意文件删除漏洞 后台文件上传漏洞 后台跨目录解压漏洞 前台变量覆盖漏洞(可导致XSS攻击) 详细漏洞分析 1. 后台任意文件删除漏洞 漏洞位置 : ***fo/app/system/databack/admin/index.class.php 第821~836行 漏洞描述 : $file 参数可控且未进行过滤 可进行任意目录遍历和文件删除 漏洞代码分析 : 复现方法 : 构造恶意请求删除服务器上任意文件 2. 后台文件上传漏洞 漏洞位置 : upfilety.php 第269行开始 漏洞描述 : 默认上传类型为sql 允许上传zip文件并解压 当zip内文件非sql时仅输出提示信息而不终止上传 可上传任意文件 漏洞代码分析 : 特殊发现 : 开发者在代码中将"后缀"(houzhui)误写为"houzui" 3. 后台跨目录解压漏洞 漏洞描述 : 与漏洞1、2类似 $file 参数可控且未过滤 ../ 可解压文件到任意目录 利用方法 : 结合漏洞2的文件上传,可将恶意文件解压到web目录实现Getshell 4. 前台变量覆盖漏洞 漏洞位置 : admin/login/login_check.php 加载了 /admin/include/common.inc.php /admin/include/common.inc.php 存在变量覆盖问题 漏洞描述 : 可实现变量覆盖 可覆盖 $url_array 变量 导致XSS攻击 EXP示例 : 攻击流程 : 管理员正常登录后,authcode加密的值会被取出并解密 解密后的值输出在 app/system/safe/admin/templates/index.php 无需登录即可触发XSS 当管理员访问后台"安全与效率"界面时自动触发XSS 可窃取管理员Cookie 组合利用攻击链 获取后台权限 : 利用前台变量覆盖漏洞触发XSS 窃取管理员Cookie 获得后台访问权限 Getshell : 利用后台任意文件删除漏洞清除障碍 利用文件上传漏洞上传恶意zip文件 利用跨目录解压漏洞将恶意文件解压到web目录 最终获得服务器控制权限 防御建议 输入验证 : 对所有用户输入进行严格过滤 禁止 ../ 等目录遍历字符 对文件操作参数进行白名单验证 安全编码 : 修复变量覆盖问题 确保上传逻辑严谨 解压前验证文件内容和目标路径 权限控制 : 后台操作需要二次验证 文件操作限制在特定目录 安全配置 : 设置合理的文件权限 禁用危险函数 总结 该CMS系统存在多处严重安全漏洞,通过组合利用这些漏洞可以实现从前台到Getshell的完整攻击链。开发人员应重视安全编码规范,对所有用户输入进行严格验证,并定期进行安全审计。