Dhananjayasj/CVE-2025-24813-Apache-Tomcat-Partial-PUT-Deserialization-RCE-

GitHub: Dhananjayasj/CVE-2025-24813-Apache-Tomcat-Partial-PUT-Deserialization-RCE-

该项目复现并验证了 Apache Tomcat CVE-2025-24813 漏洞,利用 Partial PUT 写入恶意序列化对象并经 session 反序列化触发远程代码执行。

Stars: 0 | Forks: 0

# CVE-2025-24813 - Apache Tomcat Partial PUT + 反序列化 RCE [![CVE-2025-24813](https://img.shields.io/badge/CVE-2025--24813-8.1%20High-red)](https://nvd.nist.gov/vuln/detail/CVE-2025-24813) [![Apache Tomcat](https://img.shields.io/badge/Tomcat-9.0.90%2C%2010.1.34%2C%2011.0.2-blue)](https://tomcat.apache.org/) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) ## 📋 概述 CVE-2025-24813 是 Apache Tomcat 中的一个高危漏洞,当满足以下三个条件时,允许**未授权的远程代码执行**: 1. 默认 servlet 启用了写权限(`readonly=false`)。 2. 启用了 Partial PUT 支持(默认)。 3. 配置了基于文件的 session 持久化(带 `FileStore` 的 `PersistentManager`)。 攻击者可以通过**Partial PUT 请求**(使用 `Content-Range` header)将恶意序列化的 Java 对象上传到 session 存储目录中。然后通过发送带有精心构造的 `JSESSIONID` cookie 的 GET 请求,Tomcat 会反序列化该对象并执行任意命令(前提是 classpath 中存在反序列化 gadget —— 例如 `commons-collections`)。 ## 🎯 受影响版本 - Apache Tomcat 9.0.90 - Apache Tomcat 10.1.34 - Apache Tomcat 11.0.2 如果存在相同的配置错误,更早的版本也可能受到漏洞影响。 ## 🔧 前置条件 ### 目标机器 - Docker & Docker Compose - Git ### 攻击机器 - Python 3 - `pip`(用于安装 `requests` 库) - Java 运行时(用于运行 `ysoserial`) - `netcat` (`nc`) - `curl` ## 🚀 快速开始(实验环境搭建) ### 1. 构建带有漏洞的 Tomcat 容器(目标机器) ``` git clone https://github.com/beyond-devsecops/CVE-2025-24813.git cd CVE-2025-24813 chmod +x 0-run-tomcat.sh bash 0-run-tomcat.sh ```
标签:Apache Tomcat, CISA项目, Docker, JS文件枚举, Maven, 反序列化, 安全防御评估, 应用安全, 漏洞验证, 版权保护, 编程工具, 请求拦截, 远程代码执行, 逆向工具