
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
Elementor(v. 3.6.0, 3.6.1, 3.6.2)라는 WordPress 플러그인에는 인증된 사용자라면 누구나 PHP 파일을 업로드하고 실행할 수 있게 하는 취약점이 있습니다.
이 취약점은 OWASP TOP 10 2021에서 1위(Broken Access Control)에 해당합니다.
이 취약점이 포함된 파일은 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가지가 필요합니다:
업로드하는 파일은 다음 구조를 가져야 합니다:
이 파일이 바로 YOUR payload(예: PHP Reverse Shell 또는 기타)가 됩니다.
경고: 업로드한 가짜 플러그인은 Elementor에 의해 활성화되므로, 페이지를 방문할 때마다 페이로드가 트리거됩니다.
예를 들어 오프라인 호스트에 연결을 시도하면 서비스 거부(Denial of Service)로 이어질 수 있습니다.
이를 방지하기 위해 페이로드를 활성화하는 데 사용할 변수를 사용하는 것이 좋습니다.
예를 들면 다음과 같습니다(실제 페이로드를 계속 실행하려면 anypage.php?activate=1 을 방문하세요):
if (!isset($_GET['activate']))
return;