通達OA採用基於WEB的企業計算,主HTTP服務器採用了世界上最早進的Apache服務器,性能穩定可靠。數據存取集中控制,避免了數據泄漏的可能。提供數據備份工具,保護系統數據安全。多級的權限控制,完善的密碼驗證與登陸驗證機制更增強了系統安全性。
該漏洞是因爲經過刪除通達OA身份認證文件達到繞過登陸限制, 結合任意文件上傳達到RCE的效果。javascript
公衆號內回覆「通達OA11.6」獲取安裝包html
在Windows下直接雙擊安裝
java
![圖片.png](http://static.javashuo.com/static/loading.gif)
注意!該漏洞會刪除服務器上的文件!謹慎復現!nginx
工具下載地址:
git
https://github.com/admintony/TongdaRCE
使用腳本刪除文件後再登錄會變成這樣github
![圖片.png](http://static.javashuo.com/static/loading.gif)
因此,請勿使用在線環境進行復現,請自行搭建!web
![圖片.png](http://static.javashuo.com/static/loading.gif)
![圖片.png](http://static.javashuo.com/static/loading.gif)
從網上公佈的EXP能夠知道會刪除掉auth.inc.php文件,該文件是通達用於作身份驗證的,須要登陸訪問的文件都會將它包含進來.包括後面須要用到的upload.php也包含了此文件,可是是經過include包含進來的區別於require若包含文件不存在include是不會致使程序終止的。
接着定位到任意文件刪除的漏洞點/module/appbuilder/assets/print.php。直直白白, 打頭6行代碼就實現了任意文件刪除。
只要GET傳值guid=../../../webroot/inc/auth.inc.php, 帶入unlink就能夠刪除上面介紹的身份驗證文件, 那麼大多數須要身份驗證的地方將失效。
再介紹upload.php利用以前, 先講一下通達OA祖傳變量覆蓋。這裏有個坑就是, 有的解密工具會漏掉一個$, 致使掉了一鍵盤的頭髮也不明白變量覆蓋在哪裏... 由於該文件是common.inc.php, 可想而知大部分文件都有包含,大部分地方能夠拿變量覆蓋來激情操做。
接着定位到上傳點/general/data_center/utils/upload.php, 第9行變量覆蓋action爲upload盤進if,接着咱們upload位置就是/data_center/attachment了。第84行變量覆蓋s_n爲咱們的惡意文件, 90行upload位置拼接上s_n就是咱們最終文件所在的位置。這裏在87行變量覆蓋repkid爲../../../就能目錄穿越將咱們的馬兒放在其餘目錄下, 至於爲何後面會說。
參考了前輩文章, 之因此要目錄穿越到其餘位置存放馬, 是由於通達OA的nginx限制了attachment目錄下文件訪問的權限, 致使咱們沒法正常解析咱們的馬。~* 表示正則模式, 匹配到以attachment開頭的任意php等敏感文件都不容許。
更新至官方最新版本。安全
https://drivertom.blogspot.com/2020/08/oa116-preauth-rce-0day.html