
PoC en Python que valida la escalada de privilegios no autenticada CVE-2025-6325 y la RCE por carga arbitraria de archivos CVE-2025-6327 en King Addons for Elementor <= 51.1.36.
Herramienta de investigación y validación para King Addons for Elementor <= 51.1.36, que cubre dos vulnerabilidades documentadas:
Solo para pruebas de seguridad autorizadas, investigación de vulnerabilidades y entornos de laboratorio controlados.
Este proyecto proporciona un PoC de doble propósito para validar el impacto de seguridad de dos vulnerabilidades en King Addons for Elementor.
Escalada de privilegios no autenticada a través de la funcionalidad de registro de King Addons.
El flujo vulnerable acepta un valor user_role controlado por el cliente y lo pasa a la creación de usuarios de WordPress sin aplicar una lista de roles permitidos adecuada.
Versión afectada: <= 51.1.36
Versión parcheada: 51.1.37
El flujo de registro vulnerable utiliza:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
El PoC también verifica si la cuenta creada puede autenticarse y acceder a la página de administración de usuarios de WordPress.
Carga arbitraria de archivos no autenticada a través de la funcionalidad de carga del constructor de formularios de King Addons.
El manejador de carga vulnerable puede aceptar incorrectamente un archivo PHP, lo que resulta en un archivo cargado accesible desde la web y una posible ejecución de código del lado del servidor.
Versión afectada: <= 51.1.36
Versión parcheada: 51.1.37
La acción AJAX relevante es:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
El PoC valida el flujo de carga y comprueba si el archivo de prueba cargado puede ejecutar un comando id benigno.
El script admite cuatro modos de operación:
check
privesc
upload
both
Estos modos se exponen directamente mediante la interfaz de línea de comandos.
Se requiere Python 3.
No se requieren paquetes de Python de terceros.
Comprueba tu versión de Python:
python3 --version
Ejecutar ambas comprobaciones de vulnerabilidad:
python3 exploit.py -u http://target.local --exploit both
Descubrir nonces de King Addons expuestos sin ejecutar las etapas de explotación:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
Crear un archivo de objetivos:
http://target1.local
https://target2.local
http://target3.local
Los comentarios y las líneas vacías se ignoran.
Ejecutar una evaluación pasiva:
python3 exploit.py -l targets.txt --exploit check
Ejecutar ambas etapas de validación:
python3 exploit.py -l targets.txt --exploit both -t 20
Ejecutar la validación de carga:
python3 exploit.py -l targets.txt --exploit upload -t 20
Ejecutar la validación de escalada de privilegios:
python3 exploit.py -l targets.txt --exploit privesc -t 20
El PoC busca automáticamente en las páginas objetivo los nonces requeridos por los dos flujos vulnerables.
Configuración predeterminada del rastreador:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
Estos valores predeterminados se definen en la configuración CLI del script.
Ejemplo:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
El script utiliza por defecto results.tsv para resultados estructurados y loot.txt para entradas de validación exitosa.
Durante la ejecución, la herramienta informa varios estados.
Indica que la validación de carga tuvo éxito y que el archivo PHP de prueba respondió a la solicitud de verificación.
Ejemplo:
PWNED [SHELL]
Indica que la validación de escalada de privilegios creó una cuenta utilizando el flujo de registro vulnerable.
La herramienta además registra si la cuenta fue verificada contra la página de administración de usuarios de WordPress.
La cuenta creada se autenticó correctamente y se confirmó en la página de usuarios de WordPress.
La solicitud de registro tuvo éxito, pero el paso de verificación posterior no pudo confirmar la cuenta resultante.
No se obtuvo ningún resultado de validación exitoso.
El objetivo produjo un error de red, análisis, rastreo u otro error de ejecución.
Los resultados estructurados se escriben como TSV:
results.tsv
La salida contiene campos para:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
Este formato es útil para importar resultados en hojas de cálculo o para su posterior procesamiento.
Las entradas de validación exitosa se escriben además en:
loot.txt
El script escribe los resultados de shell y de validación de privilegios como entradas separadas.
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
El PoC envía específicamente:
user_role=administrator
al endpoint de registro.
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
El PoC utiliza un nombre de archivo de prueba generado de forma única y comprueba la URL de carga devuelta.
La implementación de la investigación se probó contra:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
Las notas de investigación informan de la validación exitosa de ambos flujos en un entorno de laboratorio controlado, incluida la escalada de privilegios y la ejecución de shell. También se probó un control negativo contra la versión 51.1.37.
Las notas de investigación indican que algunas versiones ZIP de WordPress.org para 51.1.35 y 51.1.36 fueron reetiquetadas posteriormente con correcciones parciales.
Por lo tanto, la implementación vulnerable se confirmó utilizando la etiqueta SVN referenciada 51.1.14.
Si se reproduce la investigación, utilice la versión de laboratorio y el paquete exactos identificados por la investigación en lugar de asumir que cada paquete etiquetado como 51.1.35 o 51.1.36 contiene código vulnerable idéntico.
Este proyecto está destinado a:
Pruebe únicamente sistemas para los que tenga autorización explícita.
No utilice este proyecto contra infraestructuras de terceros sin permiso.
El autor no fomenta el acceso no autorizado, la persistencia, el robo de datos ni la interrupción de sistemas.
Este software se proporciona con fines de investigación de seguridad y pruebas autorizadas.
Usted es responsable de garantizar que su uso de este proyecto cumpla con las leyes, regulaciones, contratos y requisitos de autorización aplicables.
El autor y los colaboradores no asumen ninguna responsabilidad por el uso indebido, daños, interrupción del servicio, pérdida de datos u otras consecuencias derivadas del uso no autorizado.
JohenLastGen — JLG NETWORK
Investigación y Herramientas de Seguridad
Telegram:
@johenlastgen
Canal:
@jlgnetworkredirect
Licencia MIT
Consulte LICENSE para el texto completo de la licencia.
| Opción | Descripción |
|---|
-u, --url | Probar una única URL objetivo |
-l, --list | Archivo que contiene URLs objetivo |
-e, --exploit | Seleccionar check, privesc, upload o both |
-t, --threads | Número de trabajadores concurrentes |
--depth | Profundidad máxima de enlaces del rastreador |
--max-pages | Máximo de páginas rastreadas por objetivo |
--timeout | Tiempo de espera de la solicitud HTTP en segundos |
-o, --output | Salida de resultados en TSV |
--loot | Salida de validación exitosa |
--no-color | Deshabilitar colores del terminal |