
Entorno de prueba vulnerable de ThinkPHP 8.0.4 para la validación de plantillas nuclei de CVE-2024-44902
Entorno vulnerable para la validación de nuclei-templates.
| Campo | Valor |
|---|
| CVE ID | CVE-2024-44902 |
| Severidad | Crítica (CVSS 9.8) |
| Producto | ThinkPHP |
| Versiones Afectadas | 6.1.3 - 8.0.4 |
| Tipo | Deserialización Insegura → RCE |
| CWE | CWE-502 |
Las versiones de ThinkPHP 6.1.3 a 8.0.4 contienen una vulnerabilidad de deserialización insegura. Cuando la extensión PHP de Memcached está instalada, los atacantes pueden ejecutar código arbitrario enviando datos serializados maliciosos a un endpoint que llama a unserialize() sobre la entrada del usuario.
El exploit aprovecha una cadena de gadgets a través de las clases internas de ThinkPHP:
ResourceRegister → DbManager → Memcached → Pivot → Model
git clone https://github.com/KrE80r/CVE-2024-44902-env.git
cd CVE-2024-44902-env
docker compose up -d
# Verify app is running
curl http://localhost:8080/
# Test with nuclei template
nuclei -t CVE-2024-44902.yaml -u http://localhost:8080 -debug
# Cleanup
docker compose down
Este entorno es una aplicación ThinkPHP creada con composer create-project:
topthink/think:v8.0.0topthink/framework:8.0.4 (vulnerable)/api/import?data=<serialized_payload>El controlador vulnerable simula escenarios donde las aplicaciones:
Esta es una estructura de aplicación ThinkPHP adecuada con patrones estándar de enrutamiento y controladores.
$ nuclei -t CVE-2024-44902.yaml -u http://localhost:8080
[CVE-2024-44902] [http] [critical] http://localhost:8080/api/import?data=...
$ nuclei -t CVE-2024-44902.yaml -u http://localhost:8090 # httpd:latest
# No results
Este es un entorno DELIBERADAMENTE VULNERABLE para pruebas de seguridad SOLAMENTE.