某cms v5.7 sp2 后台 getshell
字数 926 2025-08-29 08:31:53

DedeCMS V5.7 SP2 后台GetShell漏洞分析与利用

漏洞概述

DedeCMS V5.7 SP2版本存在一个后台GetShell漏洞,该漏洞源于系统在处理ZIP压缩包解压时对文件名校验不严格,导致攻击者可以通过构造特殊文件名的ZIP压缩包上传并解压PHP文件,从而获取服务器控制权限。

受影响版本

  • DedeCMS V5.7 UTF8 SP2
  • 下载链接: http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-UTF8-SP2.tar.gz

漏洞利用步骤

1. 构造恶意文件

  1. 创建一个名为1.jpg.php的文件
  2. 文件内容为: <?php phpinfo();?>
  3. 将该文件压缩为ZIP格式

2. 上传压缩包

  1. 登录DedeCMS后台
  2. 进入"常用操作" → "文件式管理器"
  3. 上传构造好的ZIP压缩包到soft目录下

3. 解压并利用

  1. 访问dede/album_add.php
  2. 选择"从ZIP压缩包中解压图片"功能
  3. 发布并预览文档
  4. 访问解压后的PHP文件执行代码

漏洞分析

关键代码位置

漏洞位于album_add.php文件中:

else if(preg_match("/\.(".$fileexp.")/i",$filename)) {
    $filearr[] = $truefile;
}

漏洞成因

  1. 系统使用GetMatchFiles函数处理ZIP压缩包中的文件
  2. 传入的$fileexp参数为jpg|png|gif
  3. 正则匹配仅检查文件名中是否包含图片扩展名(jpg, png, gif),而不验证文件实际扩展名
  4. 因此1.jpg.php这样的文件名可以通过验证,因为包含.jpg
  5. 解压后保留.php扩展名,导致PHP代码可执行

修复建议

  1. 严格验证文件扩展名,确保文件实际扩展名与允许的扩展名一致
  2. 使用pathinfo()函数获取文件真实扩展名进行验证
  3. 禁止解压包含PHP等可执行文件类型的压缩包
  4. 更新到最新版本DedeCMS

补充说明

  1. 该漏洞需要后台权限才能利用
  2. 实际利用时可构造更复杂的WebShell代码
  3. 漏洞利用成功后可通过PHP函数获取服务器完全控制权限

参考

  • 原始漏洞报告者: xiaohuihui1
  • 报告时间: 2019-02-26
  • 漏洞类型: 文件上传绕过导致代码执行
DedeCMS V5.7 SP2 后台GetShell漏洞分析与利用 漏洞概述 DedeCMS V5.7 SP2版本存在一个后台GetShell漏洞,该漏洞源于系统在处理ZIP压缩包解压时对文件名校验不严格,导致攻击者可以通过构造特殊文件名的ZIP压缩包上传并解压PHP文件,从而获取服务器控制权限。 受影响版本 DedeCMS V5.7 UTF8 SP2 下载链接: http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-UTF8-SP2.tar.gz 漏洞利用步骤 1. 构造恶意文件 创建一个名为 1.jpg.php 的文件 文件内容为: <?php phpinfo();?> 将该文件压缩为ZIP格式 2. 上传压缩包 登录DedeCMS后台 进入"常用操作" → "文件式管理器" 上传构造好的ZIP压缩包到 soft 目录下 3. 解压并利用 访问 dede/album_add.php 选择"从ZIP压缩包中解压图片"功能 发布并预览文档 访问解压后的PHP文件执行代码 漏洞分析 关键代码位置 漏洞位于 album_add.php 文件中: 漏洞成因 系统使用 GetMatchFiles 函数处理ZIP压缩包中的文件 传入的 $fileexp 参数为 jpg|png|gif 正则匹配仅检查文件名中是否包含图片扩展名( jpg , png , gif ),而不验证文件实际扩展名 因此 1.jpg.php 这样的文件名可以通过验证,因为包含 .jpg 解压后保留 .php 扩展名,导致PHP代码可执行 修复建议 严格验证文件扩展名,确保文件实际扩展名与允许的扩展名一致 使用 pathinfo() 函数获取文件真实扩展名进行验证 禁止解压包含PHP等可执行文件类型的压缩包 更新到最新版本DedeCMS 补充说明 该漏洞需要后台权限才能利用 实际利用时可构造更复杂的WebShell代码 漏洞利用成功后可通过PHP函数获取服务器完全控制权限 参考 原始漏洞报告者: xiaohuihui1 报告时间: 2019-02-26 漏洞类型: 文件上传绕过导致代码执行