
Эксплойт для CVE-2022-1329 в WordPress Elementor 3.6.0-3.6.2, позволяющий выполнение удаленного кода с аутентификацией через загрузку вредоносного ZIP-архива с PHP-полезной нагрузкой.
Дата: 16 апреля 2023 г.
Автор эксплойта: Việt Hùng (https://github.com/phanthibichtram12)
Сайт поставщика: https://elementor.com/
Ссылка на ПО: https://wordpress.org/plugins/elementor/advanced/ (прокрутите вниз и выберите версию)
Версии: 3.6.0, 3.6.1, 3.6.2
Протестировано на: WordPress 5.9.3 (не зависит от ОС, так как этот эксплойт НЕ предоставляет полезную нагрузку)
CVE : CVE-2022-1329
Плагин WordPress Elementor (v. 3.6.0, 3.6.1, 3.6.2) содержит уязвимость, позволяющую любому аутентифицированному пользователю загружать и выполнять произвольные PHP-файлы.
Эта уязвимость, согласно OWASP TOP 10 2021, занимает первое место (Нарушенный контроль доступа)
Файл, содержащий эту уязвимость: 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. Это означает, что при каждом посещении любой страницы будет активироваться наша полезная нагрузка. Например, если она пытается подключиться к офлайн-серверу, это может привести к отказу в обслуживании (DoS). Чтобы этого избежать, рекомендую использовать какую-либо переменную для активации полезной нагрузки. Что-то вроде этого (обращайтесь к Anypage.php?activate=1 для выполнения фактической полезной нагрузки):
if (!isset($_GET['activate']))
return;