
# Entorno PoC basado en Docker para la vulnerabilidad de deserialización APP_KEY de Laravel CVE-2018-15133 Incluye un script de explotación para verificar la ejecución remota de código mediante payloads maliciosos en Laravel <= 5.7.27.
WhiteHat School tercera promoción, clase 28, Lee Yebin - Virtualización: configuración de Docker vulnerable https://github.com/yeahhbean/Laravel-CVE-2018-15133
Este proyecto es un entorno basado en Docker creado para verificar (PoC) la vulnerabilidad CVE-2018-15133 (vulnerabilidad de deserialización de la APP_KEY de Laravel).
El entorno vulnerable se construye únicamente con el Dockerfile y docker-compose.yaml, y se confirmó que el PoC se realiza correctamente mediante el exploit.
El entorno vulnerable se instala y se pone en marcha automáticamente mediante el Dockerfile y docker-compose.yaml.
| Archivo | Descripción |
|---|
| Dockerfile | Para instalar PHP + Composer + Laravel 5.7 |
| docker-compose.yaml | Configura todos los servicios (Nginx, PHP, MySQL) |
| nginx/default.conf | Archivo de configuración del proxy inverso de Nginx |
| exploit.py | Código PoC basado en APP_KEY |
Estructura de directorios

Cambio de directorio: cd C:\Users\Admin\Desktop\WHS\CVE

Construcción de la imagen Docker: docker-compose build

Ejecución del contenedor Docker: docker-compose up -d

Acceso al contenedor: docker exec -it laravel_app bash

Salir del contenedor y ejecutar el PoC: exit python exploit.py

Acceso al navegador: abra el navegador web en http://localhost:8080

# 1. Descargar el código fuente y cambiar de directorio
cd [directorio del proyecto]
# 2. Construir la imagen Docker
docker-compose build
# 3. Ejecutar el contenedor Docker
docker-compose up -d
---
Si la ejecución es correcta, podrá ver la página predeterminada de Laravel en http://localhost:8080.
---
## PoC (Verificación de la vulnerabilidad)
# 1. Extraer la APP_KEY de Laravel dentro del contenedor
docker exec -it laravel_app bash
cat /var/www/html/laravel/.env | grep APP_KEY
# 2. Introducir la APP_KEY extraída en exploit.py y ejecutarlo
python exploit.py
# 3. Si se devuelve correctamente el HTML de la página de Laravel, significa que el payload enviado a través de la APP_KEY se transmitió correctamente.
---
## Precauciones
- Las versiones posteriores a Laravel 5.7.28 ya no son explotables, ya que esta vulnerabilidad ha sido parcheada.
- El código PoC (exploit.py) se escribió tomando como referencia técnicas de ataque públicas.
---
## Referencias
- https://nvd.nist.gov/vuln/detail/cve-2018-15133
- https://laravel.com/docs/5.7/releases#laravel-5.7.27