
WordPress Elementor 3.6.0 3.6.1 3.6.2 RCE POC
Google Dork: none
Data: 16 Aprile 2022
Autore Exploit: AkuCyberSec (https://github.com/AkuCyberSec)
Homepage del Venditore: https://elementor.com/
Link del Software: https://wordpress.org/plugins/elementor/advanced/ (scroll down to select the version)
Versione: 3.6.0, 3.6.1, 3.62
Testato su: WordPress 5.9.3 (os-independent since this exploit does NOT provide the payload)
CVE : CVE-2022-1329
Il plugin WordPress chiamato Elementor (v. 3.6.0, 3.6.1, 3.6.2) presenta una vulnerabilità che consente a qualsiasi utente autenticato di caricare ed eseguire qualsiasi file PHP.
Questa vulnerabilità, nell'OWASP TOP 10 2021, è posizionata al #1 (Broken Access Control)
Il file che contiene questa vulnerabilità è elementor/core/app/modules/onboarding/module.php
Alla fine di questo file si trova questo codice:
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();
}
} );
Questo codice viene attivato ogni volta che QUALSIASI account utente visita /wp-admin
Per funzionare abbiamo bisogno delle seguenti 4 cose:
Il file che carichiamo deve avere la seguente struttura:
Questo file sarà il TUO payload (es. PHP Reverse Shell o qualsiasi altra cosa)
ATTENZIONE: Il falso plugin che carichiamo verrà attivato da Elementor, il che significa che ogni volta che visitiamo una pagina attiviamo il nostro payload.
Se cerca, ad esempio, di connettersi a un host offline, potrebbe portare a un Denial of Service.
Per evitare ciò, suggerisco di utilizzare una variabile per attivare il payload.
Qualcosa come questo (visita anypage.php?activate=1 per proseguire con il payload effettivo):
if (!isset($_GET['activate']))
return;