Sploitus

Exploit for Deserialization of Untrusted Data in Apache Tomcat

githubexploit · 2025-08-11

Exploit Code

README94 lines
## https://sploitus.com/exploit?id=F856A513-0212-5329-A95D-245B380A3F1D
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  \
    --command "" \
    --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