漏洞复现 CNVD-C-2020-121325

  • A+
所属分类:安全文章

漏洞简介

禅道 项目管理软件 是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、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

漏洞复现 CNVD-C-2020-121325

点击访问禅道:跳到web页面

默认用户名密码:

admin/123456

漏洞复现

复现之前,我想提一下禅道的一个历史漏洞:wooyun-2015-0146646

漏洞复现 CNVD-C-2020-121325

这里洞的利用点主要是因为调用uploadImages会把zip文件自动解压到www。所以只需要构造一个恶意的.zip压缩包即可完成利用。

而CNVD-C-2020-121325中也是因为downloadZipPackage会自动创建文件夹并下载文件,所以这里也只需要构造一个恶意的下载base64加密的下载链接即可。

所以呢,一个是自动解压被利用,一个是自动创建文件被利用,给我的感觉都差不多。

开始复现

构造加密的文件下载地址

漏洞复现 CNVD-C-2020-121325

最终 poc 如下:

漏洞复现 CNVD-C-2020-121325

复现成功:

漏洞复现 CNVD-C-2020-121325

漏洞分析

定位漏洞函数:

漏洞复现 CNVD-C-2020-121325

这里有3个可控的参数:

  • $version

  • $link

  • $os

继续向下跟,发现调用了downloadZipPackage函数

漏洞复现 CNVD-C-2020-121325

关键代码:

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


本文始发于微信公众号(don9sec):漏洞复现 CNVD-C-2020-121325

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: