翟功香 回答:
1.漏洞影響:攻擊者可以通過構造請求,完成任意用戶登錄,包括管理員,登錄之后可進一步上傳惡意文件控制網站服務器。
2.影響版本:通達OA < 11.5版本
3.官方補丁下載地址:【通達OA】辦公就用通達OA,通達OA官方網站_OA系統_協同辦公
4.POC
漏洞分析
首先來看POC,這是POC里面最關鍵的一個函數來看看做了什么,訪問/general/login_code.php是一張二維碼
下載保存到本地,文本編輯器打開,圖片中會有一個uid,取出來,然后構造成一個POST包發到/logincheck_code.php,會返回一個session,瀏覽器中替換session即可獲得管理員權限
問題應該是出在logincheck_code.php文件中,來看這個文件,在12行直接從$_POST["UID"]中取值,然后在15行做了一個判斷,判斷如果不通過的話就exit,退出程序
然后下面就是從mysql中取數據,在然后賦值給session,整個過程一馬平川。
然后再回過頭來看if語句,主要代碼在這一句,只要取出來的cache不為空,即可繞過if語句
TD::get_cache("CODE_LOGIN" . $CODEUID);
根據命名規則全局搜索一下,設置這個緩存的地方,這個就是我們POC里面出現的 login_code文件,設置了cache,并且輸出了code_uid,訪問頁面即可獲得,漏洞利用完成。