Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-24813 PoC — Apache Tomcat: Potential RCE and/or information disclosure and/or information corruption with partial PUT

Source
Associated Vulnerability
Title:Apache Tomcat: Potential RCE and/or information disclosure and/or information corruption with partial PUT (CVE-2025-24813)
Description:Path Equivalence: 'file.Name' (Internal Dot) leading to Remote Code Execution and/or Information disclosure and/or malicious content added to uploaded files via write enabled Default Servlet in Apache Tomcat. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.2, from 10.1.0-M1 through 10.1.34, from 9.0.0.M1 through 9.0.98. The following versions were EOL at the time the CVE was created but are known to be affected: 8.5.0 though 8.5.100. Other, older, EOL versions may also be affected. If all of the following were true, a malicious user was able to view security sensitive files and/or inject content into those files: - writes enabled for the default servlet (disabled by default) - support for partial PUT (enabled by default) - a target URL for security sensitive uploads that was a sub-directory of a target URL for public uploads - attacker knowledge of the names of security sensitive files being uploaded - the security sensitive files also being uploaded via partial PUT If all of the following were true, a malicious user was able to perform remote code execution: - writes enabled for the default servlet (disabled by default) - support for partial PUT (enabled by default) - application was using Tomcat's file based session persistence with the default storage location - application included a library that may be leveraged in a deserialization attack Users are recommended to upgrade to version 11.0.3, 10.1.35 or 9.0.99, which fixes the issue.
Description
Este script explora a vulnerabilidade CVE-2025-24813 em versões específicas do Apache Tomcat, permitindo execução remota de código (RCE) através de um vetor de desserialização Java e abuso do método HTTP PUT para gravação arbitrária de arquivos de sessão.
Readme
CVE-2025-24813 – Apache Tomcat RCE Exploit

Descrição
---------
Este script explora a vulnerabilidade CVE-2025-24813 em versões específicas do Apache Tomcat, permitindo execução remota de código (RCE) através de um vetor de desserialização Java e abuso do método HTTP PUT para gravação arbitrária de arquivos de sessão.

A vulnerabilidade afeta:
- Apache Tomcat 11.0.0-M1 até 11.0.2
- Apache Tomcat 10.1.0-M1 até 10.1.34
- Apache Tomcat 9.0.0.M1 até 9.0.98

Funcionamento Interno
---------------------
1. Obtenção do Session ID
   - Acessa /index.jsp para extrair o JSESSIONID válido.
   - Se não encontrar, usa um valor padrão.

2. Teste de Escrita via PUT
   - Envia um arquivo teste (check.txt) para verificar se o servidor aceita requisições PUT com suporte a Content-Range.

3. Geração do Payload
   - Dois modos possíveis:
     - ysoserial → Usa o ysoserial para gerar um objeto serializado malicioso.
     - java → Gera um .jar malicioso em Java que executa o comando desejado.

4. Upload do Payload Malicioso
   - O payload é enviado para o diretório de sessões do Tomcat via path traversal (/uploads/../sessions/{JSESSIONID}.session).

5. Trigger da Execução
   - Ao acessar a aplicação com o JSESSIONID malicioso, o Tomcat desserializa o objeto, executando o comando enviado.

Estrutura do Script
-------------------
get_sid             → Obtém o JSESSIONID do servidor
verify_put          → Testa se o método PUT está habilitado
ysoserial_payload   → Cria payload usando ysoserial
java_payload        → Cria payload usando código Java compilado
send_payload        → Faz o upload do payload para o servidor
run_exploit         → Orquestra toda a exploração

Requisitos
----------
- Python 3.x
- Java JDK
- ysoserial.jar (https://github.com/frohoff/ysoserial)
- Biblioteca requests (pip install requests)

Uso
---
python3 cve_2025_24813_exploit.py <URL_ALVO> \
    --command "<COMANDO>" \
    --ysoserial ysoserial.jar \
    --gadget CommonsCollections6 \
    --payload_type ysoserial

Exemplos:
---------
1. Usando ysoserial para abrir calculadora:
python3 cve_2025_24813_exploit.py http://192.168.0.10:8080 --command "calc.exe"

2. Usando payload Java:
python3 cve_2025_24813_exploit.py http://victim.com --payload_type java --command "id"

Demonstração de Fluxo
---------------------
1. Verificação do PUT:
[+] PUT habilitado: http://192.168.0.10:8080/check.txt

2. Criação do Payload:
[+] Criando payload ysoserial para: calc.exe
[+] Payload salvo: payload.ser

3. Envio do Payload:
[+] Payload enviado (409): http://192.168.0.10:8080/uploads/../sessions/abcd1234.session

4. Execução do Comando:
[+] Execução bem-sucedida!

Aviso Legal
------------
Este código é exclusivamente para fins educacionais e de testes em ambientes controlados (laboratórios e sistemas de sua propriedade).
O uso não autorizado contra sistemas de terceiros é ilegal e pode resultar em sanções civis e criminais.


Contact
------------
Caso queira me contatar ou precise de algum serviço, me encontre nas seguintes plataformas:

Discord User: 4wj.

Instargram: @glowwz9

Email: vliyanie1337@proton.me
File Snapshot

[4.0K] /data/pocs/8113da9244a4ca21ba29fbb56e18327841fd7ec9 ├── [5.7K] exploit.py └── [3.1K] README.md 0 directories, 2 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →