
Plantilla de Nuclei con validación de varias etapas para CVE-2019-18935 (RCE por deserialización de Telerik UI). Incluye descubrimiento de manejador, enumeración de versiones y prueba de explotación con un entorno de laboratorio Docker.
Este repositorio contiene una plantilla Nuclei completa y validada para detectar CVE-2019-18935 (Telerik UI for ASP.NET AJAX Deserialization RCE), creada para el programa de recompensas de ProjectDiscovery.
CVE-2019-18935 es una vulnerabilidad crítica de deserialización .NET en Progress Telerik UI for ASP.NET AJAX (versiones 2011.1.315 hasta 2019.3.1023) que permite ejecución remota de código no autenticada. Esta vulnerabilidad:
.
├── README.md # Este archivo
├── BOUNTY_PLAN.md # Documento de planificación original
├── nuclei-templates/
│ └── cves/
│ └── 2019/
│ └── CVE-2019-18935.yaml # Plantilla Nuclei principal
├── docker-environment/ # Entorno de prueba vulnerable
│ ├── Dockerfile
│ ├── docker-compose.yml
│ ├── web.config
│ ├── Default.aspx
│ └── README.md
├── scripts/ # Scripts de explotación y validación
│ ├── RAU_crypto.py # Módulo auxiliar de cifrado
│ ├── telerik_version_detect.py # Herramienta de detección de versión
│ └── telerik_exploit_poc.py # Script de validación POC
├── documentation/ # Documentación técnica
│ ├── TESTING.md # Guía de pruebas
│ └── METHODOLOGY.md # Metodología de detección
├── debug-output/ # Registros de depuración y resultados (a generar)
└── payloads/ # Payloads de prueba (opcional)
✅ Implementación POC Completa - No solo detección de versión
✅ Validación Multi-Etapa - Descubrimiento de handler + verificación de versión + prueba de explotación
✅ Bajos Falsos Positivos - Condición AND entre múltiples matchers
✅ No Destructiva - Pruebas seguras sin explotación real
✅ Extracción Integral - Información de versión, detalles de error, etapas de detección
✅ Bien Documentada - Guías completas de metodología y pruebas incluidas
# Instalar Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Instalar dependencias de Python (para scripts de validación)
pip3 install -r requirements.txt
# Instalar Docker (para entorno de prueba)
# Ver: https://docs.docker.com/get-docker/
# Probar contra un solo objetivo
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-u http://target.com \
-v
# Probar con salida de depuración
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-u http://target.com \
-debug -v
# Probar contra múltiples objetivos
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-l targets.txt \
-json -o results.json
# Navegar al entorno docker
cd docker-environment
# Importante: Obtener Telerik.Web.UI.dll primero (ver docker-environment/README.md)
# Colocar el DLL en este directorio
# Construir e iniciar
docker-compose up -d
# Verificar que está funcionando
curl http://localhost:8080/Telerik.Web.UI.WebResource.axd?type=rau
# Probar la plantilla
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-u http://localhost:8080 \
-debug -v \
2>&1 | tee debug-output/test-run.log
[CVE-2019-18935] [http] [critical] http://localhost:8080/Telerik.Web.UI.WebResource.axd
[EXTRACTED]
telerik_version: 2017.2.503.40
detection_stage: Handler detected in request 1, Version in request 2, Deserialization in request 3
error_details: Exception at Telerik.Web.UI...
cd scripts
# Detectar versión de Telerik y comprobar vulnerabilidad
python3 telerik_version_detect.py http://target.com
# Salida:
# [+] Handler found: http://target.com/Telerik.Web.UI.WebResource.axd?type=rau
# [+] Detected version: 2017.2.503
# [!] VULNERABLE: Version in range 2011.1.315 - 2019.3.1023
# Ejecutar POC no destructivo
python3 telerik_exploit_poc.py http://target.com/Telerik.Web.UI.WebResource.axd?type=rau
# Salida:
# [+] Handler is accessible
# [+] Upload capability confirmed
# [+] Deserialization processing detected
# [!] VULNERABILITY: CONFIRMED
La plantilla utiliza un proceso de detección de tres etapas:
Etapa 1 - Descubrimiento del Handler:
/Telerik.Web.UI.WebResource.axd?type=rauEtapa 2 - Enumeración de Versión:
rauPostData inválidoEtapa 3 - Prueba de Explotación:
__typeLas tres etapas deben tener éxito para una detección positiva (condición AND).
Consulte documentation/METHODOLOGY.md para detalles técnicos completos.
⚠️ Importante: Esta plantilla está etiquetada como intrusiva porque:
Use esta plantilla solo contra:
El cumplimiento legal es su responsabilidad.
curl http://target/Telerik.Web.UI.WebResource.axd?type=raupython3 scripts/telerik_exploit_poc.py <url>nuclei -t template.yaml -u <url> -debugdocker-compose logsConsulte TESTING.md para la guía completa de solución de problemas.
Esta plantilla fue creada para el programa de recompensas de ProjectDiscovery. Para mejoras o problemas:
Este trabajo se proporciona solo para investigación de seguridad y pruebas autorizadas. Úselo de manera responsable y legal.
Creado para el Programa de Recompensas de ProjectDiscovery
Fecha de Investigación: Diciembre 2025
Estado: Listo para envío ✅