
Exploit para CVE-2022-1329, uma vulnerabilidade de RCE no plugin Elementor para WordPress, que permite que usuários autenticados façam upload e executem arquivos PHP arbitrários por meio de payloads ZIP especialmente criados.
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
O plugin WordPress chamado Elementor (v. 3.6.0, 3.6.1, 3.6.2) possui uma vulnerabilidade que permite que qualquer usuário autenticado faça upload e execute qualquer arquivo PHP.
Esta vulnerabilidade, no OWASP TOP 10 2021, está na posição #1 (Controle de Acesso Quebrado)
O arquivo que contém essa vulnerabilidade é elementor/core/app/modules/onboarding/module.php
No final deste arquivo você pode 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 é acionado sempre que QUALQUER conta de usuário visita /wp-admin
Para funcionar, precisamos das seguintes 4 coisas:
O arquivo que enviamos deve ter a seguinte estrutura:
Este arquivo será seu payload (ex.: PHP Reverse Shell ou qualquer outra coisa)
AVISO: O plugin falso que enviamos será ativado pelo Elementor, isso significa que cada vez que visitamos qualquer página, disparamos nosso payload.
Se ele tentar, por exemplo, conectar a um host offline, isso pode levar a uma Negação de Serviço.
Para evitar isso, sugiro que você use alguma variável para ativar o payload.
Algo como isto (visite anypage.php?activate=1 para continuar com o payload real):
if (!isset($_GET['activate']))
return;