
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
Плагин WordPress под названием Elementor (версии 3.6.0, 3.6.1, 3.6.2) содержит уязвимость, которая позволяет любому аутентифицированному пользователю загружать и выполнять любой PHP-файл.
Эта уязвимость в OWASP TOP 10 2021 находится на позиции №1 (Нарушенный контроль доступа).
Файл, содержащий эту уязвимость: elementor/core/app/modules/onboarding/module.php
В конце этого файла находится следующий код:
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();
}
} );
Этот код срабатывает при посещении /wp-admin любой учетной записью пользователя.
Для его работы необходимы следующие 4 условия:
Загружаемый файл должен иметь следующую структуру:
Этот файл будет вашей полезной нагрузкой (например, PHP Reverse Shell или что-то ещё).
ПРЕДУПРЕЖДЕНИЕ: Поддельный плагин, который мы загружаем, будет активирован Elementor, что означает, что при каждом посещении любой страницы будет запускаться наша полезная нагрузка.
Если он, например, попытается подключиться к недоступному хосту, это может привести к отказу в обслуживании.
Чтобы предотвратить это, я рекомендую использовать какую-либо переменную для активации полезной нагрузки.
Например, так (посетите anypage.php?activate=1, чтобы продолжить выполнение фактической полезной нагрузки):
if (!isset($_GET['activate']))
return;