Tomcat RCE(CVE-2025-24813)复现

漏洞原理

概况

Tomcat 是一个开源的、轻量级的 Web 应用服务器 和 Servlet 容器。它由 Apache 软件基金会下的 Jakarta 项目开发,是目前最流行的 Java Web 服务器之一。
该漏洞利用条件较为复杂,需同时满足以下四个条件:

  1. 应用程序启用了DefaultServlet写入功能
    1. 该功能默认关闭
  2. 应用支持了 partial PUT 请求,能够将恶意的序列化数据写入到会话文件中
    1. 该功能默认开启
  3. 应用使用了 Tomcat 的文件会话持久化并且使用了默认的会话存储位置
    1. 需要额外配置
  4. 应用中包含一个存在反序列化漏洞的库,比如存在于类路径下的 commons-collections,此条件取决于业务实现是否依赖存在反序列化利用链的库

原理分析

Content-Range

Content-Range 在 Tomcat 的HTTP PUT请求中主要用于实现大文件的分块传输。

Content-Range: bytes 0-1000/1200 表示

  • 文件总大小是1200字节
  • 本次上传的是前1001字节(0-1000)
  • 后续上传剩余部分(1001-1200)
partial PUT

使用 partial PUT 请求将恶意的序列化数据写入到会话文件中,在开启文件会话持久化(默认存储位置),并且在文件上传未完成的情况下,内容会被临时存储在Tomcat的工作目录:

  • $CATALINA_BASE/work/Catalina/localhost/ROOT
核心漏洞点

该漏洞的核心在于不完整PUT请求上传时的文件名处理机制:

  • 文件路径中的分隔符 会被转换为  .

例如:访问 /xxxxx/session 会被解析为 .xxxxx.session

利用过程

整个漏洞的利用过程为:

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Neolock

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

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

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

打赏作者

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

抵扣说明:

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

余额充值