
WordPress Elementor 3.6.0 3.6.1 3.6.2 RCE POC
Google Dork: なし
日付: 2022年4月16日
エクスプロイト作者: AkuCyberSec (https://github.com/AkuCyberSec)
ベンダーホームページ: https://elementor.com/
ソフトウェアリンク: https://wordpress.org/plugins/elementor/advanced/ (スクロールダウンしてバージョンを選択)
バージョン: 3.6.0, 3.6.1, 3.62
テスト環境: WordPress 5.9.3 (OS非依存。このエクスプロイトはペイロードを提供しないため)
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() {
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リバースシェルなど)。
警告: アップロードした偽のプラグインはElementorによって有効化されます。つまり、任意のページにアクセスするたびにペイロードがトリガーされます。
例えば、オフラインのホストに接続しようとすると、サービス拒否(DoS)につながる可能性があります。
これを防ぐために、ペイロードを有効化するための変数を使用することをお勧めします。
例えば次のようなものです(実際のペイロードを実行するには anypage.php?activate=1 にアクセスしてください):
if (!isset($_GET['activate']))
return;