
Ce dépôt contient un script Python pour automatiser le processus de test d'une vulnérabilité connue sous le nom de Text4Shell, référencée sous l'identifiant CVE : CVE-2022-42889.
Ce dépôt contient un script Python pour automatiser le processus de test d'une vulnérabilité connue sous le nom de Text4Shell, référencée sous l'identifiant CVE : CVE-2022-42889.
Text4Shell est une vulnérabilité critique qui affecte un large éventail de systèmes. La vulnérabilité réside dans la manière dont ces systèmes analysent les chaînes de texte et permet l'exécution de code arbitraire ou des attaques SSRF. Elle est exploitée via des chaînes spécialement conçues, où soit du code JavaScript est exécuté (menant à une exécution de code à distance (RCE)), soit des URL sont récupérées (menant à une falsification de requête côté serveur (SSRF)).
D'après Tarlogic :
Exigences d'exploitation :
L'application accepte une entrée contrôlée par l'utilisateur qui est ensuite traitée par l'une des méthodes suivantes du composant affecté :
Les versions de Java égales ou supérieures à Java 15 ne seraient pas susceptibles d'exécution de code à distance, car le moteur Nashorn est désactivé et le préfixe « script » ne serait pas disponible. Cependant, d'autres attaques via les préfixes « url » et « dns » seraient possibles.
Ce script Python aide à tester la présence de la vulnérabilité Text4Shell dans un système. Le périmètre de ce script inclut : le test des préfixes script et url.
Le script a deux modes de fonctionnement : RCE et SSRF, contrôlés par l'argument de ligne de commande -m ou --mode. Il construit une URL incorporant une chaîne spécialement conçue en fonction du mode sélectionné et envoie une requête GET à cette URL.
En mode RCE, le script crée une chaîne conçue pour tenter d'exécuter une commande JavaScript. La commande à exécuter est passée en argument de ligne de commande à l'aide de -c ou --command.
python text4shell.py -u 'http://example.com/search?query=' -c 'your_command' -m 'rce'
En mode SSRF, le script crée une chaîne conçue qui inclut une commande de récupération d'URL.
python text4shell.py -u 'http://example.com/search?query=' -m 'ssrf' -s 'http://example.com/resource'
Le script envoie une requête GET à l'URL construite et affiche le code de statut de la réponse HTTP ainsi que le corps de la réponse.