近日,北京天地和兴科技有限公司安全服务部监测到Apache发布安全公告,修复了Apache Tomcat远程代码执行漏洞(CVE-2025-24813),请用户迅速采取措施进行防护!
本文章仅用于可能存在的安全问题,北京天地和兴科技有限公司不因此提供任何安全保证或承诺。因传播本文章所提供的信息而造成的任何直接或间接后果及损失,均由用户本人负责,北京天地和兴科技有限公司以及文章作者不承担因此的任何责任。
北京天地和兴科技有限公司拥有此文章的最终解释权。如欲转载或传播此文章,必须保证此文章的版权,包括版权公告等全部内容。默认北京天地和兴科技有限公司允许修改声明,不得任意或减少此方式的安全内容,不得以任何方式将其用于其商业目的。
《中华人民共和国网络安全法》第二十七条
任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序和工具;明知他人从事危害网络安全的活动,不得为其提供技术支持、广告推广、支付结算等帮助。
下文中出现的图文仅支持个人研究学习,切勿用于非法犯罪活动!
Apache Tomcat是一个开源的、轻量级的Web应用服务器和Servlet 容器。它由Apache软件基金会下的Jakarta项目开发,是目前最流行的 Java Web服务器之一。
该漏洞利用条件较为复杂,需同时满足以下四个条件:
- 应用程序启用了DefaultServlet写入功能,该功能默认关闭
- 应用支持partial PUT请求,能够将恶意的序列化数据写入到会话文件中,该功能默认开启
- 应用使用Tomcat的文件会话持久化并且使用默认的会话存储位置,需要额外配置
- 应用中包含一个存在反序列化漏洞的库,如存在于类路径下的commons-collections,此条件取决于业务实现是否依赖存在反序列化利用链的库
漏洞影响范围
- 9.0.0.M1 <= tomcat <= 9.0.98
- 10.1.0-M1 <= tomcat <= 10.1.34
- 11.0.0-M1 <= tomcat <= 11.0.2
本地搭建apache-tomcat9.0.98环境,手动添加配置如下
手动添加commons-collections-3.2.1.jar依赖
访问8080端口,如下图说明环境搭建成功
构造POC,生成一个恶意的序列化文件,使用数据包上传,需要注意Range的分块值需要与Length保持一致,且大于当前文件的长度
```
PUT /xxxxx/session HTTP/1.1
Host: your-ip:8080
Content-Length: 2000
Content-Range: bytes 0-2000/2200
{{Deserialization_POC)}}
```
如下图生成.xxxxx.session文件,说明POC发送成功
构造如下POC进行触发
```
GET / HTTP/1.1
Host: your-ip:8080
Cookie: JSESSIONID=.xxxxx
```
成功RCE并弹出本地计算器
- Tomcat的File会话存储默认路径位于CATALINA_BASE/work/Catalina/localhost/ROOT
- 当存在反序列化利用链时,可以上传包含恶意序列化数据的文件
- 通过设置JSESSIONID=.xxxxx来触发漏洞
- 在不影响业务的前提下,用户可将conf/web.xml文件中的串口参数设置为true或进行注释
- 取消PUT方法并重新启动Tomcat服务使配置生效
- 将org.apache.catalina.session.PersistentManager设置为false
Apache基金会官方已发布漏洞公告,可下载补丁更新
https://lists.apache.org/thread/j5fkjv2k477os90nczf2v9l61fb0kkgq
https://nvd.nist.gov/vuln/detail/CVE-2025-24813
往期回顾
点击“在看”鼓励一下吧
原文始发于微信公众号(天地和兴):汤姆猫最新CVE复现及分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论