
WordPress Elementor 3.6.0 3.6.1 3.6.2 RCE POC
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 complemento 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, ocupa el puesto #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 cuando CUALQUIER cuenta de usuario visita /wp-admin
Para que funcione necesitamos las siguientes 4 cosas:
El archivo que subamos debe tener la siguiente estructura:
Este archivo será TU payload (p. ej., una Reverse Shell en PHP o cualquier otra cosa)
ADVERTENCIA: El complemento falso que subamos será activado por Elementor, lo que significa que cada vez que visitemos cualquier página ejecutaremos nuestro payload.
Si intenta, por ejemplo, conectarse a un host fuera de línea, podría provocar una Denegación de Servicio.
Para evitarlo, te sugiero que uses 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;