
Prueba de concepto del exploit para CVE-2022-1329, una vulnerabilidad de ejecución remota de código en WordPress Elementor 3.6.0-3.6.2. Incluye un entorno vulnerable basado en Docker y una inyección de payload PHP personalizable.
Este PoC está basado en el de AkuCyberSec.
Usa docker-compose para iniciar el entorno vulnerable:
docker-compose up -d
Luego puedes acceder a la página de administración de WordPress con la URL http://localhost:8000.
Registra el usuario administrador y agrega un usuario no administrador en la sección Usuarios. Por ejemplo, hay dos usuarios:
| Usuario | Contraseña | Rol |
|---|---|---|
| wc | 123456 | Administrador |
| a2 | aaaaaa | Editor |
Inicia sesión con la cuenta de administrador e instala Elementor 3.6.1 usando el zip proporcionado.
Si encuentras el problema de tamaño de subida, agrega php.ini a /var/www/html/ de la siguiente manera y reinicia el servidor docker:
upload_max_filesize = 64M
max_execution_time = 0
post_max_size = 150M
file_uploads = on
Edita el script del PoC con la información de tu usuario no administrador y ejecuta el script para explotar:
python3 poc.py
NOTA: el script puede fallar con problema de subida, pero está bien, intenta refrescar la página de administración en el navegador para ver si funciona.
El PoC ahora ejecuta phpinfo(); como su payload, por supuesto puedes editarlo, pero necesitas eliminar manualmente el plugin elementor-pro en el contenedor docker /var/www/html/wp-content/plugin/elementor-pro:
# Descomprime el archivo zip
unzip elementor-pro.zip
# Edita el archivo principal para poner tu payload, está al inicio del archivo
nano elementor-pro/elementor-pro.php
# Y vuelve a comprimir
rm elementor-pro.zip; zip -ry elementor-pro.zip elementor-pro
# Explota de nuevo
python3 poc.py
