文章总结: 本文复现了TomcatCVE-2024-50379远程代码执行漏洞。该漏洞利用Windows文件名大小写不敏感特性,在readonly为false时,通过PUT上传恶意JSP文件并利用条件竞争触发代码执行。文章详细介绍了受影响版本、环境搭建、Burp复现步骤及POC代码。实战利用依赖条件竞争,建议升级Tomcat版本或开启readonly参数进行修复。 综合评分: 91 文章分类: 漏洞分析,漏洞POC,WEB安全
Tomcat RCE | CVE-2024-50379条件竞争RCE复现,带视频教程及POC
原创
犀利猪
犀利猪安全
2024年12月19日 14:20 湖南
0x00 漏洞描述
此漏洞仅存在于Windows系统,当Tomcat的readonly 参数被设置为 false(默认为true),允许使用 PUT 方法上传文件时,攻击者能够上传包含恶意 JSP 代码的文件,并通过条件竞争来多次发送请求,触发 Tomcat 进行解析和执行,最终实现远程代码执行。
Apache Tomcat 11.0.0-M1 - 11.0.1Apache Tomcat 10.1.0-M1 - 10.1.33Apache Tomcat 9.0.0.M1 - 9.0.97
0x01 环境搭建
可在如下地址进行环境下载,选择漏洞范围内版本:
https://archive.apache.org/dist/tomcat/tomcat-9/https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.97/bin/
安装好后可访问8080端口,看是否安装成功。随后来到Tomcat安装目录下的 conf/web.xml ,增加修改其配置,然后重启Tomcat:
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet>
0x02 漏洞复现
访问页面,抓取数据包:
在Burp的Repeater中新建一个组,后续在这个组中再进行多次发送到Repeater,这些包就会规划到分组里:
建议前两个包使用GET请求,不同的文件名,我这里使用xlz1和xlz2作为文件名:
后面再发4个包到分组中,使用PUT请求。这里一定要注意的是,在PUT请求中,文件名后缀我们更改一个字母为大写,即为:.Jsp。漏洞POC如下,插入到PUT请求后:
aa<% Runtime.getRuntime().exec("calc.exe");%>
这是由于在 Windows 系统中,文件名不区分大小写(.Jsp与.jsp被视为同一个文件),当文件写入和访问同时发生时就会导致JSP 文件被写入时触发编译,在文件被完全编译成.class文件并删除前,其中某些访问可能会跳过完整检查,导致触发代码执行。
PUT请求中的文件名,需要跟GET请求中的文件名一致,除了后缀进行大写外,无变化。接下来,我们点击设置并选择组发送:
然后进行多次发包,我这里一共发了四次:
0x03 复现视频
全程复现视频如下,自行观看:
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
切换到竖屏全屏退出全屏
犀利猪安全已关注
分享视频
,时长02:12
0/0
00:00/02:12
切换到横屏模式
继续播放
[ ]
进度条,百分之0
播放
00:00
/
02:12
02:12
倍速
全屏
倍速播放中
0.5倍 0.75倍 1.0倍 1.5倍 2.0倍
超清 流畅
继续观看
Tomcat RCE | CVE-2024-50379条件竞争RCE复现,带视频教程及POC
观看更多
原创
,
Tomcat RCE | CVE-2024-50379条件竞争RCE复现,带视频教程及POC
犀利猪安全已关注
分享点赞在看
已同步到看一看写下你的评论
视频详情
0x04 文后总结
实战能不能利用就看运气了,复现咱得会。
修复建议
1、升级Tomcat版本为非漏洞版本范围;
2、设置 readonly 为 false
<init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param>
(
END
)
!扫码添加哦!
联系进群即可,群内可交流技术
免责声明
文章内容仅限授权测试或学习使用
请勿进行非法的测试或攻击
利用本账号所发文章 进行直接或间接的非法行为 均由操作者本人负全责 犀利猪安全及文章对应作者
不为此承担任何责任
文章来自互联网或原创
如有侵权可联系我方进行删除
并诚挚的跟您说声抱歉
犀利猪安全,带你上高速
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:犀利猪安全 犀利猪《Tomcat RCE | CVE-2024-50379条件竞争RCE复现,带视频教程及POC》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论