
WordPress Elementor 3.6.0 3.6.1 3.6.2 RCE POC
Google Dork: aucun
Date: 16 avril 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 (indépendant du système d'exploitation car cet exploit ne fournit PAS la charge utile)
CVE : CVE-2022-1329
Le plugin WordPress appelé Elementor (v. 3.6.0, 3.6.1, 3.6.2) présente une vulnérabilité qui permet à tout utilisateur authentifié de télécharger et d'exécuter n'importe quel fichier PHP.
Cette vulnérabilité, dans le TOP 10 OWASP 2021, est placée en position #1 (Contrôle d'accès défaillant)
Le fichier qui contient cette vulnérabilité est elementor/core/app/modules/onboarding/module.php
À la fin de ce fichier, vous pouvez trouver ce code :
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();
}
} );
Ce code est déclenché lorsque n'importe quel compte utilisateur visite /wp-admin
Pour que cela fonctionne, nous avons besoin des 4 éléments suivants :
Le fichier que nous téléchargeons doit avoir la structure suivante :
Ce fichier sera VOTRE charge utile (par exemple, un shell inversé PHP ou autre chose)
AVERTISSEMENT : Le faux plugin que nous téléchargeons sera activé par Elementor, ce qui signifie qu'à chaque fois que nous visitons une page, nous déclenchons notre charge utile.
S'il essaie, par exemple, de se connecter à un hôte hors ligne, cela pourrait entraîner un déni de service.
Pour éviter cela, je vous suggère d'utiliser une variable pour activer la charge utile.
Quelque chose comme ceci (visitez anypage.php?activate=1 pour continuer avec la charge utile réelle) :
if (!isset($_GET['activate']))
return;