通達OA繞過身份驗證+任意文件上傳RCE



上方藍色字體關注咱們,一塊兒學安全!
本文做者:li9hu @Timeline Sec
本文字數:1024
閱讀時長:3~4min
聲明:請勿用做違法用途,不然後果自負

0x01 簡介

通達OA採用基於WEB的企業計算,主HTTP服務器採用了世界上最早進的Apache服務器,性能穩定可靠。數據存取集中控制,避免了數據泄漏的可能。提供數據備份工具,保護系統數據安全。多級的權限控制,完善的密碼驗證與登陸驗證機制更增強了系統安全性。

0x02 漏洞概述

該漏洞是因爲經過刪除通達OA身份認證文件達到繞過登陸限制, 結合任意文件上傳達到RCE的效果。javascript


0x03 影響版本



通達OA<v11.5&v11.6版本php


0x04 環境搭建

公衆號內回覆「通達OA11.6」獲取安裝包html

在Windows下直接雙擊安裝

java


點擊肯定訪問



OA管理員用戶名:admin  密碼爲空
使用解密工具SeayDzend解密源碼



0x05 漏洞復現


注意!該漏洞會刪除服務器上的文件!謹慎復現!nginx

工具下載地址:
git

https://github.com/admintony/TongdaRCE


使用腳本刪除文件後再登錄會變成這樣github



因此,請勿使用在線環境進行復現,請自行搭建!web





0x06 漏洞分析


從網上公佈的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等敏感文件都不容許。


0x07 修復方式


更新至官方最新版本。安全


參考連接:服務器

https://drivertom.blogspot.com/2020/08/oa116-preauth-rce-0day.html




閱讀原文看更多復現文章
Timeline Sec 團隊
安全路上,與你並肩前行









本文分享自微信公衆號 - Timeline Sec(TimelineSec)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索