【部件攻击链】禅道项目管理系统软件(ZenTaoPMS)高风险漏洞剖析与利用

访客4年前关于黑客接单1160

ZenTaoPMS(ZenTao Project Management System),中文名字为禅道项目管理手机软件。ZenTaoPMS是用以处理诸多公司在管理 *** 全过程中发生的错乱,混乱的状况,而开发设计出去的一套项目管理手机软件。

禅道项目管理手机软件的关键管理 *** 观念根据国际性时兴的灵巧项目管理 *** ——Scrum。Scrum是一种以问题为导向的灵巧项目管理 *** ,但大家都知道,它只要求了关键的管理 *** 架构,实际的关键点还必须精英团队自主扩大。禅道在遵照其管理方式基本上,又融进了中国产品研发现况的许多要求,例如bug管理 *** ,功能测试管理 *** ,公布管理 *** ,文件管理等。因而禅道不仅是一款scrum灵巧项目管理专用工具,也是一款完善的项目管理手机软件。根据Scrum,又不限于Scrum。

禅道还初次创造力的将商品、新项目、检测这三者的定义确立分离,商品工作人员、开发设计精英团队、测试工程师,这三者公司分立,相互配合,又相互依存,根据要求、每日任务、bug来开展交相互动交流,最后根据新项目取得达标的商品。

禅道项目管理手机软件根据自主研发的PHP开发框架——禅道PHP框架开发设计而成,公司或是第三方的开发人员能够根据这套架构,灵便的对禅道开展作用的改动或是拓展。历经逐渐演变,禅道项目管理手机软件发展趋势变成四大系列产品、功能齐全的项目管理手机软件。禅道项目管理手机软件发展趋势迄今其关键开发设计系列产品现有下列三个,即禅道商业版、禅道标准版、禅道集团公司版、禅道开源版。在其中禅道开源版是基本版本;而标准版、商业版是依据禅道开源版开展二次开发而成,期间仅存有多功能性上的不一样,因此 标准版、商业版是兼容平级开源版的;而集团公司版仅为布署构架上的不一样,关键還是商业版,实际以下:

(1)禅道开源版(2009-2020)是禅道项目管理手机软件的基本版本,归属于禅道新项目的开发框架,在其中仅开发设计了项目管理的基础控制模块。

(2)禅道标准版(2012-2020)是在禅道开源版的基本上提升提高作用。标准版发布的初心是为IT公司或单位出示更健全的服务项目,标准版提高作用更为合适公司的內部系统化管理 *** 。另外标准版的提高作用都以收费标准软件的 *** 公布在禅道官方网站里,为客户出示独立免费下载应用的服务项目。

(3)禅道商业版(2017-2020),在禅道标准版作用的基本上,提升了运维服务、OA办公管理、意见反馈管理 *** ,及其文本文档的版本管理 *** 及线上浏览等作用,能够为公司项目管理步骤出示更全方位的支撑点。

(4)禅道集团公司版(2019-2020)关键包括主网服务平台和子网站两一部分。集团公司版客户能够根据主网服务平台给集团旗下的 单位、 分公司或是第三方开发设计精英团队各自启用一个单独的子网站开展项目管理。集团公司版的子网站由禅道项目管理手机软件商业版出示项目管理服务项目, 每一个子网站的数据信息全是单独且互相危害。

版本细分化如下图所显示:

image.png

依据各大网站数据分析,应用ZenTaoPMS的网址高达4万多个,在其中绝大多数集中化在中国,占消耗量的75%之上。在其中,广东省、浙江省、北京市、上海市四省份消耗量更大,不难看出,ZenTaoPMS在中国被广泛运用。根据 *** 环境百度搜索引擎的数据分析和柱型数据图表,如下图所显示。

image.png

根据对ZenTaoPMS漏洞的搜集和梳理,过虑出在其中的高风险漏洞,能够得到以下目录。

image.png

从之上表能够看得出,近些年禅道漏洞高发,从2018年逐渐,每一年都是会曝出情况严重的高风险漏洞,根据这种高风险漏洞均可对 *** 服务器导致一定的危害,乃至能够获得 *** 服务器的更大权限。

从漏洞遍布的状况看来,禅道绝大多数的漏洞均归属于后台管理漏洞,这来源于禅道归属于项目管理手机软件,均必须登陆受权后才可电脑操作系统中的随意控制模块,而系统软件中的未受权插口非常少,在18年暴发一个未受权漏洞后,官方网将扩大开放的插口所有挑选修补,就造成 对外开放开发设计插口非常少,难以有漏洞利用点,故截止到如今,禅道所暴发的漏洞均必须后台管理一定的管理权限帐户才可实行。

我们可以见到2018年禅道暴发出好几个漏洞,实际上这种漏洞基本原理基本一致,均为滥用权力启用getModel涵数,后边大家会在深入分析中解读该一部分漏洞的基本原理。此外,大家发觉禅道暴发的漏洞基础存有于开源版,但这并不代表着这种漏洞仅存有于开源版,开源版是禅道别的系列产品的基本架构版本,因此 开源版的漏洞大概率也会取决于相匹配兼容系列产品的相匹配版本中。且禅道具备扩展性,因此 绝大多数使用人均可选用开源版,在开展二次开发,可用到自身新项目中。

根据ZenTaoPMS高风险漏洞,我们可以得到几类能够利用的高风险利用链。

image.png

ZenTaoPMS (8.2-9.2.1) - GetShell

● 更先确立ZenTao架构系列产品版本,浏览该途径可获得版本信息内容:/zentao/index.php?mode=getconfig。

● 假如利用此漏洞,必须系统软件有文档载入管理权限。

image.png

ZenTaoPMS checkPriv();

$app->loadModule();

即parseRequest()涵数便是路由器分析通道。进到到\\framework\\base\\router.class.php文件中的parseRequest()涵数:

image.png

parseRequest()涵数更先用以分析分辨url是不是选用了'GET'或是是'PATH_INFO'方式,在其中有一个点便是isGetUrl()涵数,该涵数用以分辨url是不是选用了GET方式,实际有下列三种方式:

image.png

大家返回parseRequest()涵数中能够得到,假如系统软件的默认设置分析方式是PATH_INFO,但你的url选用的是GET方式,系统软件则会将本次浏览的路由器分析方式配备改动GET,故如果你的url方式与系统软件默认设置分析方式不一样,系统软件也会分析,不容易出错。因此 禅道系统软件的二种路由器分析方式可另外应用。

(1)路由器分析中,GET方式归属于非默认设置方式,可是这种分析 *** 是PHP类CMS的基本分析方式,即m=block&f=main,m主要参数承担传送控制模块名(module),f主要参数承担传送方式名(method),从而就可以精准定位到相匹配module中的control.php文件,及其该文件中相匹配的method。

image.png

(2)路由器分析中,PATH_INFO方式归属于系统软件默认设置方式,我们在环境变量中能够见到系统软件默认设置方式及其相匹配的分节符、主要参数含意:

image.png

我们可以看得出PATH_INFO的默认设置分节符是 -,随后大家进到到path_info方式下的setRouteByPathInfo()涵数,根据分节符将url切分后,之一个数值控制模块名字module,第二个值即是方式method:

image.png

二种分析方式分析后获得的最后module、method根据 $this->setControlFile();方式来找寻相匹配的文档:

image.png

此后路由器分析完毕,精准定位到相匹配的控制模块方式后,就开展了管理权限认证,即使用人真实身份是不是能够启用该控制模块与方式,$common->checkPriv();,文档module/common/model.php:

image.png

此后方式看得出,除开isOpenMethod以外,均必须登陆后具备相匹配管理权限才可浏览,不需登陆的方式以下所显示。

image.png

漏洞名字:禅道8.2-9.2.1SQL引入前台接待Getshell

漏洞序号:无

漏洞种类:SQL引入

CVSS得分:无

漏洞伤害级别:高风险

禅道项目管理软件集产品经营、项目管理、质量控制、文件管理、组织协调和事务处理于一体,是一款作用完善的项目管理手机软件。该漏洞危害版本为禅道8.2-9.2.1。漏洞发生在系统软件orm框架中,在拼凑order by的句子全过程的情况下,未对limit一部分过虑并立即拼凑,造成 *** 攻击结构实行SQL句子。在mysql管理权限配备不善的状况下, *** 攻击可利用该漏洞获得webshell。

禅道8.2 - 9.2.1

提议受影响的客户升級至ZenTao 9.2.1之上版本或加上相匹配补丁包,下载链接:

0x0:随意浏览一个不会有的途径,回到网页页面会发生出错,出错回凸显文档的储放途径为。

0x1:依据出错回显的途径,结构SQL注入语句将木马写入系统的EXP。

  0x2:将上述EXP进行ASCIIhex加密,得到加密后的字符串。

  0x3:然后将加密后的字符串放入:

  {"orderBy":"order limit 1;SET @SQL=0x(加密后字符串);PREPARE pord FROM @SQL;EXECUTE pord;-- -","num":"1,1","type":"openedbyme"}

  0x4:然后将上述语句进行base64加密。

  0x5:最终通过访问以下语句执行漏洞

  加密字符串

  我们根据漏洞PoC来跟踪漏洞执行流程,从技术背景中的路由解析我们可以定位到漏洞存在的模块是block模块中的main *** ,在经过路由解析后,系统将通过loadModule() *** 加载对应模块,如下图所示:

  image.png

  在处理完url路由后,就开始处理 *** 中的各种参数,通过setParamsByGET()函数将参数解析:

  image.png

  在参数解析后,就对各个参数进行过滤检测,若没有问题,最终将解析过滤后的参数进行保存:

  image.png

  在路由解析和参数解析过滤完之后,就需要通过call_user_func_array()函数来调用对应模块的对应 *** ,然后就进入到block模块中的control.php文件:

  image.png

  在module/blocak/control.php文件中的构造函数中,存在一个判断,即需要存在referer,否则无法执行对应模块的函数。

  image.png

  在进入到block模块中的main函数中,通过mode参数进入到一下if分支,在该分支中,首先对params参数进行base64解码

  image.png

  然后通过进一步的解析参数,获取到执行getblocakdata操作的的函数为printCaseBlock()

  image.png

  然后进入到本文件中的printCaseBlock()函数中,通过解析params参数后,得到type属性为openedbyme(可构造),进入到下面的elseif分支,我们可以看到参数要进入到orderby函数中进行处理,继续跟入到orderby函数中:

  image.png

  在oderby函数,系统将oder参数进行解析,获取到orders和limit参数值

  image.png

  接下来就进入到了漏洞产生的关键,即$order=join(',', $orders) . ' ' . $limit;

  image.png

  在该SQL语句中将$limit直接拼接到最后,导致limit 1;闭合了之前的SQL语句,而之后的攻击PoC就可被执行,由此就造成了该漏洞的SQL注入,该SQL注入可以写入文件,导致最终的getshell。

  image.png

  漏洞名称:禅道后台代码注入漏洞

  漏洞编号:无

  漏洞类型:代码注入

  CVSS评分:无

  漏洞危害等级:高危

  禅道项目管理软件集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件。漏洞属于一种越权调用,普通权限(用户组为1-10)的攻击者可通过module/api/control.php中getModel *** ,越权调用module目录下所有的model模块和 *** ,从而实现SQL注入、任意文件读取、远程代码执行、文件包含等攻击。

  禅道开源版

  建议受影响的用户升级至ZenTao 11.6以上版本,下载地址:

  0x0:首先登陆获取登陆cookie:zentaosid。

  0x1:然后访问api-getModel-editor-save-filePath后再api中生成shell。

  0x2:最后访问api-getModel-api-getMethod-filePath=,最后文件包含shell,执行PHP代码。

  我们根据漏洞PoC来跟踪漏洞执行流程,从技术背景中的路由解析我们可以定位到漏洞存在的模块是api模块中的getModel *** ,在经过路由解析后,系统将通过loadModule() *** 加载对应模块,如下图所示:

  image.png

  进入到api的getModel() *** 中,获取到需要调用的三个参数module:editor,method:save,params:filePath。

  image.png

  然后通过回调函数call_user_func_array进入到editor模块中:

  image.png

  进入到editor模块中的model.php文件中的save()函数,通过save函数的file_put_contents将fileContent内容生成为一个文件,

  image.png

  最终将输出结果后,进程结束。

  image.png

  然后通过访问api-getModel-api-getMethod-filePath文件,解析出module为api,method为getModel(),在getmodel()函数中又调用了api模块的getmethod() *** ,

  image.png

  进入到getMethod *** 中,进入到import *** :

  image.png

  在import() *** 中,通过include()函数包含了filePath下的文件,最终执行PHP代码

  image.png

  漏洞名称:禅道任意文件上传漏洞

  漏洞编号:CNVD-C-2020-121325

  漏洞类型:文件上传

  CVSS评分:无

  漏洞危害等级:高危

  禅道官方发布了开源版12.4.3的更新公告,本次安全更新禅道官方修复了一个高危漏洞:禅道任意文件上传漏洞,漏洞编号:CNVD-C-2020-121325。登录后的任意攻击者可通过fopen/fread/fwrite *** 结合FTP、File等协议上传或读取任意文件,成功利用该漏洞可以执行任意代码,最终获取服务器更高权限。

  10.x

  建议受影响的用户升级至ZenTao 12.4.3及以上版本,下载地址:

  0x0:首先登陆获取登陆cookie:zentaosid。

  0x1:然后访问client-download-[$version参数]-[base64加密后的恶意文件地址]-1.html后再下载远程文件到服务器中。

  0x2:最后访问data/cliten/1/文件,执行PHP代码。

  我们根据漏洞PoC来跟踪漏洞执行流程,从技术背景中的路由解析我们可以定位到漏洞存在的模块是client模块中的download *** ,在经过路由解析后,系统将通过loadModule() *** 加载对应模块:

  进入到client的download() *** 中,获取到需要调用的2个参数$version和$link

  image.png

  然后跟进到download()重点中的downloadZipPackage()函数,全局 *** 有两个downloadZipPackage函数,其中一个在module/client/ext/model/xuanxuan.php:进入到该函数中,我们发现该函数首先将$link参数进行base64解码后,然后通过pcre进行过滤,即路径的协议无法使用但是我们可以使用HTTP或者file、ftp等协议绕过该限制,然后返回到正式的downloadZipPackage函数,parent::downloadZipPackage($version, $link);

  image.png

  接下来进入到module/client/model.php中的接下来进入到module/client/model.php:

  image.png

  在该 *** 中,我们可以看到version参数用于创建一个新的文件夹,即/data/client/${version},

  然后将link参数值进行base64解码,最终在新建文件夹下新建文件,然后将远程文件写入到该文件中,最终达到远程文件上传漏洞的目的。

  image.png

  漏洞名称:禅道项目管理软件Pro版本任意命令执行漏洞

  漏洞编号:CVE-2020-7361

  漏洞类型:命令执行

  CVSS评分:CVSS 2.0:9.0; CVSS 3.x:8.8

  漏洞危害等级:高危

  EasyCorp ZenTao Pro是一套开源项目管理软件。该软件包括产品管理、项目管理、质量管理和文档管理等功能。EasyCorp ZenTao Pro 8.8.2及之前版本中的/pro/repo-create.html文件存在操作系统命令注入漏洞。攻击者可借助‘path’参数利用该漏洞以SYSTEM权限执行任意命令。

  禅道 Pro repo->create();该处的create() *** 是调用的model.php文件中的create() *** :

  image.png

  进入到module/repo/model.php *** 中,首先进入到create() *** 中,发现之一步需要执行checkConnection():

  image.png

  在checkConnection()函数中,首先获取到对应参数值,由此发现参数在此未做过滤,继续往下看:

  image.png

  如果SCM=git的话,则判断path下的文件是否存在,如果不存在则返回false。

  image.png

  然后进入到本漏洞的触发点了,command参数直接与tag 2>&1拼接,带入到exec()函数执行:

  image.png

  关注深信服千里目安全实验室观看漏洞利用视频。

  深信服科技旗下安全实验室,致力于 *** 安全攻防技术的研究和积累,深度洞察未知 *** 安全威胁,解读前沿安全技术。

相关文章

【组件攻击链】禅道项目管理系统(ZenTaoPMS)高危漏洞分析与利用

【组件攻击链】禅道项目管理系统(ZenTaoPMS)高危漏洞分析与利用

组件介绍1 基本信息ZenTaoPMS(ZenTao Project Management System),中文名为禅道项目管理软件。ZenTaoPMS是用于解决众多企业在管理过程中出现的混乱,无序的...