
CVE-2022-1329에 대한 익스플로잇 - WordPress Elementor 3.6.0-3.6.2에서 인증된 원격 코드 실행을 가능하게 함 (PHP 페이로드를 포함한 악성 ZIP 업로드를 통해).
날짜: 2023년 4월 16일
공격자: Việt Hùng (https://github.com/phanthibichtram12)
공급자 홈페이지: https://elementor.com/
소프트웨어 링크: https://wordpress.org/plugins/elementor/advanced/ (아래로 스크롤하여 버전 선택)
버전: 3.6.0, 3.6.1, 3.62
테스트 환경: 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에서 1위(깨진 접근 제어)에 해당합니다.
이 취약점이 포함된 파일은 elementor/core/app/modules/onboarding/module.php 입니다.
이 파일의 끝에서 다음 코드를 찾을 수 있습니다:
add_action( 'admin_init', function() {
nếu ( 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;