漏洞简介
禅道 项目管理软件 是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,实现了软件的完整生命周期管理。
登陆后台的恶意攻击者可以通过 fopen/fread/fwrite 方法读取或上传任意文件,成功利用漏洞可以读取目标系统敏感文件以及获得系统管理权限。
影响范围
禅道:禅道开源版: <=12.4.2
环境搭建
https://www.zentao.net/dynamic/zentaopms12.4.2-80263.html
# 我下载的一键安装版
http://dl.cnezsoft.com/zentao/12.4.2/ZenTaoPMS.12.4.2.old.exe
点击访问禅道:跳到web页面
默认用户名密码:
admin/123456
漏洞复现
复现之前,我想提一下禅道的一个历史漏洞:wooyun-2015-0146646
这里洞的利用点主要是因为调用uploadImages会把zip文件自动解压到www。所以只需要构造一个恶意的.zip压缩包即可完成利用。
而CNVD-C-2020-121325中也是因为downloadZipPackage会自动创建文件夹并下载文件,所以这里也只需要构造一个恶意的下载base64加密的下载链接即可。
所以呢,一个是自动解压被利用,一个是自动创建文件被利用,给我的感觉都差不多。
开始复现:
构造加密的文件下载地址
最终 poc 如下:
复现成功:
漏洞分析
定位漏洞函数:
这里有3个可控的参数:
$version
$link
$os
继续向下跟,发现调用了downloadZipPackage函数
关键代码:
if(empty($version) || empty($link)) return false;
$dir = "data/client/" . $version . '/';
$link = helper::safe64Decode($link);
$file = basename($link);
这段代码先判断参数version和和link是否为空,不为空则downloadZipPackage 函数会创建 version 文件夹并下载 link 文件到该文件夹。
修复建议
升级到 12.4.3 版本,下载链接为 :
https://www.zentao.net/download/zentaopms12.4.3-80272.html
文章转载自pen4uin,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。