yuzuki-ayanami/CVE-2025-24813

GitHub: yuzuki-ayanami/CVE-2025-24813

针对 Apache Tomcat CVE-2025-24813 会话反序列化 RCE 漏洞的 PoC 利用工具,通过部分 PUT 写入恶意序列化对象并触发 gadget chain 实现远程代码执行。

Stars: 0 | Forks: 0

tomcat

CVE-2025-24813

Apache Tomcat - Remote Code Execution via Session Deserialization

Unauthenticated partial PUT + path traversal + gadget-driven deserialization

### 描述 启用了默认 servlet PUT(`readonly=false`)的 Apache Tomcat 实例允许通过部分 HTTP PUT 请求写入文件。通过构造一个从上传目录遍历到会话存储目录(`../sessions/`)的路径,攻击者可以将序列化的 Java 对象植入为 `.session` 文件。下一个引用此 session id 的请求会触发反序列化,从而执行嵌入的 gadget chain。 **要求:** - 默认 servlet `readonly=false`(非默认配置) - Tomcat classpath 中存在 gadget chain(例如 CommonsCollections) - `PUT` 和路径遍历没有被反向代理或 WAF 过滤 ### 用法 ``` git clone https://github.com/yuzuki-ayanami/CVE-2025-24813 cd CVE-2025-24813 pip install -r requirements.txt ``` 基本检查 + 利用(当 ysoserial 不存在时自动编译 Java payload): ``` python cve-2025-24813.py http://target:8080 ``` 自定义命令: ``` python cve-2025-24813.py http://target:8080 --command 'whoami' ``` ysoserial gadget chain(可靠性更高): ``` python cve-2025-24813.py https://target --ysoserial ysoserial.jar --gadget CommonsCollections6 ``` ### 前置条件 - Python 3.8+ - `requests`(参见 `requirements.txt`) - Java JDK(在不使用 ysoserial 时用于自动编译的回退) - `ysoserial.jar`(可选,提供更可靠的 gadget chain) ### 受影响版本 在默认 servlet 上暴露了部分 PUT 功能的 Apache Tomcat 版本。确切的版本范围取决于 gadget 的可用性——该漏洞是配置与 classpath 的组合问题,而不是受版本限制的软件 bug。 ### 致谢 - Yuzuki Ayanami - 改进的 PoC - [absholi7ly](https://github.com/absholi7ly/POC-CVE-2025-24813) - 原始 exploit
标签:CISA项目, Java反序列化, JS文件枚举, Python, Web报告查看器, 安全PoC, 无后门, 逆向工具