在数字化浪潮席卷全球的今天,Web 应用已成为企业运营和个人生活不可或缺的一部分。然而,伴随其广泛应用而来的,是日益严峻的网络安全挑战。每一次漏洞的曝光,都如同敲响的警钟,提醒着我们对系统安全的持续关注和投入。Apache Tomcat 爆出的反序列化漏洞(CVE-2025-24813)再次将焦点引向了 Web 应用服务器的安全问题。本文将对这一漏洞进行深入剖析,从其概览、风险自查、修复建议,到漏洞原理及利用方式,再到如何通过专业工具进行有效防护,为您提供一份全面的技术解读。

01

漏洞概览

/ TINGYUN

Apache Tomcat 是美国阿帕奇(Apache)基金会一款广泛使用的轻量级 Web 应用服务器,主要用于实现对 Servlet 和 JavaServer Page(JSP)的支持。此次漏洞的产生源于 Apache Tomcat 反序列化机制未对用户输入进行严格验证,导致攻击者能够通过构造恶意序列化对象绕过安全限制,进而实现远程恶意代码的执行,最终获取服务器的控制权。这无疑对依赖Tomcat的企业和个人用户构成了巨大的潜在威胁。

02

风险自查

/ TINGYUN

为了及时发现并规避潜在风险,企业应立即对当前使用的Apache Tomcat 版本进行自查。您可以通过听云 ASPM 的组件风险功能或其他专业的安全检测工具,核查您的 Tomcat 版本是否处于以下受影响的范围内:

PlainText

11.0.0-M1 ≤ Apache Tomcat ≤ 11.0.2

10.1.0-M1 ≤ Apache Tomcat ≤ 10.1.34

9.0.0.M1 ≤ Apache Tomcat ≤ 9.0.98

03

如何修复受影响的程序

/ TINGYUN

要修复 CVE-2025-24813,请立即执行以下操作:

  • 升级 Apache Tomcat 到 11.0.3 或以上版本。

  • 升级 Apache Tomcat 到 10.1.35 或以上版本。

  • 升级 Apache Tomcat 到 9.0.99 或以上版本。

临时缓解措施:

  • 禁用 DefaultServlet 写入功能:在 web.xml 中确保 readonly=true

  • 禁用文件会话持久化:移除 context.xml 中的 PersistentManager 配置。

  • 移除漏洞库:删除或更新类路径下存在漏洞的库(如 commons-collections-3.2.1.jar 如果在不需要该组件的情况下)。

04

漏洞的原理及利用

/ TINGYUN

漏洞的原理

在 Tomcat 中,HTTP PUT 请求中的 Content-Range 头字段发挥着实现大文件分块传输的重要作用。当文件上传处于未完成状态时,这些上传内容会被临时存放在 Tomcat 工作目录中,具体位置是:

 $CATALINA_BASE/work/Catalina/localhost/ROOT 

该漏洞的核心在于不完整 PUT 请求上传时的文件名处理机制,其会将文件路径中的分隔符 转换为 。例如,访问路径 /xxxxx/session 会被解析为 .xxxxx.session。因此,整个漏洞的利用过程为:

  • Tomcat 的 File 会话存储默认路径同样位于: CATALINA_BASE/work/Catalina/localhost/ROOT 

  • 当存在反序列化利用链时,可以上传包含恶意序列化数据的文件

  • 通过设置 JSESSIONID=.xxxxx 来触发漏洞

漏洞利用方法(利用环境均在本地环境进行)

利用条件

// 1.DefaultServlet 启用了写入权限(默认禁用)

// 2.服务器启用了partial PUT(默认启用)

// 3.Tomcat 使用了基于文件的 Session 持久化机制(非默认配置,默认为基于内存持久化),且存储位置为默认路径

// 4.应用程序包含 可利用的反序列化漏洞库(如 Commons-Collections 3.x)。(如果包含这个条件则可以 RCE,不然只能 java 原生反序列化如 URLDNS 链)

利用方法 1: CC 链

// 1.在符合利用条件的 Tomcat 版本中请求 Tomcat 主页

// 2.获取原始数据包

// 3.构造 RCE 链(如果有 cc 依赖或其他 RCE 依赖的情况下)通过 yakit 自带插件 yso-java hack 生成混淆后的反序列化 base64 数据

// 4.把生成的数据放到数据包中构造恶意的请求,返回 409

// 5.再构造一个带 Cookie:JSESSIONID=.poc (刚才请求的路径的最上级路径”/”用”.”替换,返回 500

// 6.RCE 成功,弹出计算器

利用方法 2:URLDNS 链

// 1.同样的用 yso-java hack 构造序列化数据

// 2.把生成的数据放到数据包中构造恶意的请求,返回409

// 3.再构造一个带 Cookie:JSESSIONID=.poc (刚才请求的路径的最上级路径”/”用”.”替换,返回500

// 4.观察 DNSLOG 平台,收到服务器请求,说明反序列化成功,服务器请求了我们发送的 URL 类

05

听云 ASPM 如何提供帮助

/ TINGYUN

面对日益复杂的网络安全威胁,专业的应用安全性能管理(ASPM)工具显得尤为重要。听云 ASPM 用户可以通过威胁感知,组件风险,来实时观察自己的系统是否存在 0day 安全风险以及 1day 或 nday 的组件风险。针对上述 Tomcat 漏洞,听云 ASPM 能够发挥以下关键作用:

命令执行漏洞发现 

当 Tomcat 通过听云探针插桩后,听云 ASPM 能够立即发现命令执行漏洞。当应用程序调用了计算器行为时,ASPM 会立即发出警报,即使攻击者对 payload 进行了混淆或双字节字符处理,也无法逃避其监控。

反序列化漏洞发现: 

听云 ASPM 能够精准识别反序列化漏洞。当 java.net.URL 类被反序列化加载时,ASPM 会立即发现并展示完整的调用堆栈,帮助安全人员快速定位问题。

组件风险库: 

听云 ASPM 的组件风险库会定期更新最新的组件 CVE 漏洞信息。通过组件风险功能,用户可以清晰地看到其应用程序所使用的组件是否存在已知的安全风险,从而及时进行修复和升级。

06

结论

/ TINGYUN

Apache Tomcat 反序列化漏洞(CVE-2025-24813)的曝光,再次凸显了在当前复杂多变的网络环境中,开发人员定期更新依赖项、检查安全架构以及部署专业安全工具的重要性。这一事件不仅是对技术人员的一次警醒,也证明了听云 ASPM 类型应用安全性能管理工具在 0day 漏洞防护、组件安全等应用安全领域中的不可替代作用。只有持续关注安全动态,积极采取防护措施,才能在网络空间中筑牢坚实的防线,确保业务的持续稳定运行。

参考:

https://github.com/advisories/GHSA-83qj-6fr2-vhqg

声明:

本文的所有漏洞环境均为本地测试环境,且本文仅供学习参考使用,请勿用作违法用途,否则后果自负。

 

推荐阅读

  • apm应用性能管理开发​是指利用信息技术和管理方法,开发和实现应用性能管理(apm)解决方案的过程,它可以帮助客户监控和优化应用程序的运行状态和用户体验,提升业务效率和竞争力。

    2023-08-24

  • 在当今信息技术高速发展的时代,it运维监控管理系统成为了企业管理中不可或缺的重要工具。它的作用不仅仅是为企业提供it设备的安稳性和稳定性保障,更是能够提高能效率,降低成本,优化管理流程,增强企业竞争力的利器。

    2023-09-26