Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
wp2shell-PoC — CVE-2026-63030 & CVE-2026-60137 RCEチェーン概念実証 | Kitploit
ツール/GitHubGitHub/sowarma/wp2shell-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用データ流出ポストエクスプロイトウェブセキュリティペネトレーションテスト学習と教育APIセキュリティ
GitHubsowarma/wp2shell-poc

wp2shell-PoC

CVE-2026-63030 & CVE-2026-60137 RCEチェーン概念実証

351237日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

wp2shell-PoC

⚠ このツールは教育目的またはバグ報奨金プログラムの目的でのみ作成されています。管理された環境外での不正使用は厳格に禁止されています。

Overview

WordPress コアに影響する wp2shell 脆弱性チェーンの概念実証です。CVE-2026-63030 と CVE-2026-60137 を組み合わせています。このプロジェクトは、REST API の Batch ルート混乱の脆弱性と WP_Query の SQL インジェクションの相互作用を示しており、未認証のまま WordPress を完全に侵害し、リモートコード実行 (RCE) に至る経路を実証します。

完全なアドバイザリはこちらで読むことができます。

仕組み

wp2shell は、WordPress コアにおける認証前 RCE チェーンであり、CVE-2026-63030 (バッチ REST エンドポイントのルート混乱) と CVE-2026-60137 (WP_Query の SQL インジェクション) を組み合わせたものです。

ルート混乱: /wp-json/batch/v1 は、位置でインデックス付けされた並列の $matches 配列と $validation 配列を介して複数のサブリクエストを処理します。不正なパス (例: http://:) を含むサブリクエストは、continue 文により $validation には追加されますが $matches には追加されず、配列の同期が崩れます。後続のリクエストは、次の リクエスト用に用意されたハンドラの下でディスパッチされ、スキーマ検証と権限チェックをバイパスします。

SQL インジェクション: 2 つのネストされたバッチ呼び出しがこれを悪用します。外側のバッチはメソッド許可リスト (通常は GET をブロック) をバイパスします。内側のバッチはスカラーの author_exclude 文字列を GET /wp/v2/posts に渡します。この同期ズレにより検証をすり抜けるようにルーティングされ、WP_Query がサニタイズされていない文字列を直接 SQL に補間するため、UNION ベースのブラインドインジェクションが発生します。

キャッシュポイズニング: SQLi は偽造された WP_Post オブジェクトを返し、WordPress はそれをメモリ内にキャッシュします。これらの偽の投稿には [embed] ショートコードが含まれており、WordPress は偽の参照から実際の oembed_cache データベース行を作成します。

Changeset 権限昇格: 攻撃者は SQLi を利用して、JSON に "user_id": 1 を含む customize_changeset 投稿をメモリ内で偽造します。循環検出ガジェットが post_content を上書きせずに wp_update_post() をトリガーし、攻撃者のペイロードを保持します。changeset を適用すると、一時的に管理者の身元を引き継ぎます。

フック再エントリ: ステータス parse とタイプ request を持つ偽造投稿が parse_request フックを発火させ、取得した管理者ロールでバッチリクエスト全体を再実行します。今回は POST /wp/v2/users サブリクエストが成功し、新しい管理者アカウントが作成されます。

コード実行: 攻撃者は作成された管理者としてログインし、悪意のあるプラグインをアップロードして任意のコマンドを実行します。

影響を受けるバージョン

Versionステータス
WordPress 6.9.0 – 6.9.4脆弱
WordPress 7.0.0 – 7.0.1脆弱
WordPress 6.9.5修正済み
WordPress 7.0.2+修正済み

使い方

この PoC を使用するために必要なのは Python 3.8+ のみです。

リポジトリディレクトリから実行して、脆弱性チェックを行います:

root@kitploit:~
wp2shell.py http://victim.com

チェックモード (デフォルト)

単一の脆弱性チェックを実行します。SQLi ペイロードを実行せずにルート混乱バグを検出する、無害なバッチマーカープローブを送信します。脆弱なターゲットは、parse_path_failed、block_cannot_read、rest_batch_not_allowed のエラーパターンを含む HTTP 207 を返します。

--confirm-sqli を使用すると、アクティブな SQLi 確認ペイロードも送信されます。確認では最初に UNION リフレクションを試し、次にタイミングベースのプローブにフォールバックします。

単一ターゲットのチェック (デフォルトモード)

root@kitploit:~
wp2shell.py http://target.com

明示的なモードでチェック

root@kitploit:~
Check with explicit mode
wp2shell.py http://target.com --check

SQLi 確認を含むチェック

root@kitploit:~
wp2shell.py http://target.com --check --confirm-sqli

読み取りモード - SQL インジェクションによるデータ抽出

認証前 SQL インジェクションを使用してデータベースからデータを抽出します。デフォルトでは --technique auto を使用し、利用可能なメソッドを次の順序で試します:

  • union - UNION を介して偽の WP_Post 行を偽造し、REST レスポンスからタイトルを ||HEX(value)|| として読み戻します。値ごとに 1 リクエスト。最速です。
  • error - EXTRACTVALUE/UPDATEXML を使用して、1 リクエストあたり約 15 バイトを漏洩させます。ターゲットが MySQL エラーを反映する場合 (例: WP_DEBUG_DISPLAY がオンの場合) に機能します。
  • blind - ブールバイナリサーチで、1 文字あたり約 8 リクエスト。X-WP-Total ヘッダーを true/false シグナルとして読み取ります。データが一切反映されない場合でも機能します。

--technique union|error|blind で特定のテクニックを強制できます。これらの読み取り経路は読み取り専用であり、データベースに書き込みを行いません。

サーバーフィンガープリント (デフォルトクエリ)

root@kitploit:~
wp2shell.py http://target.com --read

ログイン名とパスワードハッシュのダンプ

root@kitploit:~
wp2shell.py http://target.com --read --preset users

カスタム SQL クエリ

root@kitploit:~
wp2shell.py http://target.com --read --query "SELECT @@version"

ブラインドテクニックを強制

root@kitploit:~
wp2shell.py http://target.com --read --technique blind --query "SELECT user_login FROM wp_users LIMIT 1"

エラーベースのテクニックで抽出

root@kitploit:~
wp2shell.py http://target.com --read --technique error --query "SELECT user_pass FROM wp_users LIMIT 1"

シェルモード

ターゲットサーバー上でコマンドを実行します。2 つのモードで動作します:

認証情報を使用する場合 (既存の管理者としてログインし、プラグインシェルをアップロード):

特定のコマンドを実行

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --cmd id

インタラクティブシェル

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --interactive
Without credentials (pre-auth RCE - runs the full SQLi→admin bridge, logs in as generated admin, then uploads plugin shell):

単一コマンドを実行

root@kitploit:~
wp2shell.py http://target.com --shell --cmd id

インタラクティブシェル

root@kitploit:~
wp2shell.py http://target.com --shell --interactive

プラグインのウェブシェルは、ランダムなパスと実行ごとのトークンでアップロードされます。アップロードされたウェブシェルは自動的に削除されます。認証前ブリッジが管理者を作成した場合、その生成されたアカウントはシェルセッション終了後に自動的に削除されます。

全フラグ一覧:

参照:

  1. https://slcyber.io/research-center/exploit-brokers-pay-500000-for-a-wordpress-rce-i-found-one-with-gpt5-6/
  2. https://www.picussecurity.com/resource/blog/cve-2026-63030-and-cve-2026-60137-wp2shell-wordpress-rce-explained

免責事項

このツールは教育目的またはバグ報奨金プログラムの目的でのみ作成されています。管理された環境外での不正使用は厳格に禁止されています。

ツールをダウンロード
フラグ説明
--check脆弱性チェックを実行 (他のモードが指定されていない場合のデフォルトモード)
--readSQL インジェクションを介してデータを抽出
--shellサーバー上でコマンドを実行
--query読み取りモード用のカスタム SQL クエリ
--preset事前定義されたクエリプリセット (users、config、versions)
--techniqueSQLi 抽出テクニック: union、error、blind、または auto (デフォルト)
--confirm-sqliチェック後に SQLi 確認ペイロードを送信
--cmdシェルモードで実行するコマンド (デフォルト: id)
--interactive, -iインタラクティブシェルモード
--user認証付きシェル用の管理者ユーザー名
--password認証付きシェル用の管理者パスワード
--proxyHTTP/HTTPS プロキシ (例: http://127.0.0.1:8080)
--timeoutリクエストタイムアウト (秒) (デフォルト: 30)
--verbose, -v詳細出力