
Exploit para CVE-2022-1329, una vulnerabilidad de ejecución remota de código (RCE) en el plugin Elementor de WordPress, que permite a usuarios autenticados subir y ejecutar archivos PHP arbitrarios mediante payloads ZIP manipulados.
Google Dork: none
Date: April 16 2022
Exploit Author: AkuCyberSec (https://github.com/AkuCyberSec)
Vendor Homepage: https://elementor.com/
Software Link: https://wordpress.org/plugins/elementor/advanced/ (scroll down to select the version)
Version: 3.6.0, 3.6.1, 3.62
Tested on: WordPress 5.9.3 (os-independent since this exploit does NOT provide the payload)
CVE : CVE-2022-1329
El plugin de WordPress llamado Elementor (v. 3.6.0, 3.6.1, 3.6.2) tiene una vulnerabilidad que permite a cualquier usuario autenticado subir y ejecutar cualquier archivo PHP.
Esta vulnerabilidad, en el OWASP TOP 10 2021, se encuentra en la posición #1 (Control de Acceso Roto)
El archivo que contiene esta vulnerabilidad es elementor/core/app/modules/onboarding/module.php
Al final de este archivo puedes encontrar este código:
add_action( 'admin_init', function() {
if ( wp_doing_ajax() &&
isset( $_POST['action'] ) &&
isset( $_POST['_nonce'] ) &&
wp_verify_nonce( $_POST['_nonce'], Ajax::NONCE_KEY )
) {
$this->maybe_handle_ajax();
}
} );
Este código se activa cada vez que CUALQUIER cuenta de usuario visita /wp-admin
Para que funcione necesitamos las siguientes 4 cosas:
El archivo que subimos debe tener la siguiente estructura:
Este archivo será TU payload (por ejemplo, una Reverse Shell en PHP o cualquier otra cosa)
ADVERTENCIA: El plugin falso que subimos será activado por Elementor, esto significa que cada vez que visitemos cualquier página activamos nuestro payload.
Si intenta, por ejemplo, conectarse a un host offline, podría provocar una Denegación de Servicio.
Para prevenir esto, te sugiero usar alguna variable para activar el payload.
Algo como esto (visita anypage.php?activate=1 para continuar con el payload real):
if (!isset($_GET['activate']))
return;