
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، تُصنَّف في المركز الأول (كسر التحكم في الوصول).
الملف الذي يحتوي على هذه الثغرة هو 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
لكي يعمل الاستغلال، نحتاج إلى الأشياء الأربعة التالية:
يجب أن يكون للملف الذي نرفعه البنية التالية:
سيكون هذا الملف هو حمولتك الخاصة (payload) (مثل PHP Reverse Shell أو أي شيء آخر).
تحذير: سيتم تفعيل الإضافة المزيّفة التي نرفعها بواسطة Elementor، وهذا يعني أننا في كل مرة نزور فيها أي صفحة سنقوم بتشغيل الحمولة.
إذا حاولت، على سبيل المثال، الاتصال بمضيف غير متصل، فقد يؤدي ذلك إلى حرمان من الخدمة (Denial of Service).
لمنع ذلك، أقترح عليك استخدام متغير لتفعيل الحمولة.
شيء من هذا القبيل (قم بزيارة anypage.php?activate=1 لمتابعة الحمولة الفعلية):
if (!isset($_GET['activate']))
return;