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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/bhanunamikaze/wp2shell-cve-2026-63030-poc
偵察脆弱性スキャナーエクスプロイトウェブアプリケーション悪用情報収集ウェブセキュリティペネトレーションテスト学習と教育

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
bhanunamikaze/wp2shell-cve-2026-63030-poc

WP2Shell-CVE-2026-63030-POC

WP2Shell WordPress脆弱性チェーンのPoC検出器&安全な検証ツール: CVE-2026-63030 (RESTバッチルート混乱) + CVE-2026-60137 (author__not_in SQLインジェクション)。許可されたセキュリティテスト専用です。

リポジトリを見るウェブサイト
112ヶ月前未レビュー

WP2Shell 検出・検証 PoC

License: MIT Python 3.9+ CVE-2026-63030 CVE-2026-60137 Security Research

CVE 対象: CVE-2026-63030 および CVE-2026-60137 想定用途: 許可されたセキュリティテスト、防御的検証、および使い捨ての localhost ラボのみ

WP2Shell は、事前認証 REST API バッチルート混乱バグ (CVE-2026-63030) と、WP_Query の author__not_in SQL インジェクションプリミティブ (CVE-2026-60137) を組み合わせた WordPress Core の脆弱性チェーンです。このリポジトリは、防御者が影響を受ける WordPress インストールを識別し、隔離されたラボで脆弱な動作を確認し、修正を検証できるようにする Python の概念実証スキャナおよび安全なバリデータを提供します。データの抽出やコード実行の達成は必要ありません。

概要

このプロジェクトは WordPress インストールを識別し、WP2Shell WordPress Core 脆弱性チェーンに関連する 2 つの脆弱性プリミティブを検証します。

  • CVE-2026-63030 — REST API バッチルート混乱。
  • CVE-2026-60137 — WP_Query::author__not_in の不完全なサニタイズ。攻撃者が制御する入力がパラメータに到達すると、SQL インジェクションにつながる可能性があります。

両方の条件が存在する場合、認証されていないリクエストが WordPress REST API バッチエンドポイントを通じて脆弱な SQL 構築に到達する可能性があります。公開アドバイザリは、組み合わせた影響がリモートコード実行につながる可能性があると説明しています。

このリポジトリは、自分が所有するシステム、または明示的にテストを許可されたシステムでのみ使用してください。127.0.0.1 にバインドされた隔離された Docker または仮想マシンラボを推奨します。


安全上の注意

現在のソースファイルには、データベースデータの抽出試行、ファイル書き込み試行、認証ワークフロー、管理者作成、プラグインアップロード、コマンド実行など、状態を変更する機能が含まれています。

  • WordPress の識別。
  • バージョン評価。
  • ローカルソースツリーのバージョンチェック。
  • 安全なルート混乱検証。
  • 隔離されたラボでの非破壊的なタイミングベースの SQL インジェクション確認。
  • レポート作成、エビデンス収集、および修復。

脆弱性の概要

CVE-2026-63030 — REST API バッチルート混乱

影響を受ける WordPress リリースでは、次の追跡に使用される内部配列間の整合性が失われる可能性があります。

  • 解析されたバッチリクエスト。
  • 一致した REST ルートハンドラ。
  • 検証結果。

不正な形式のバッチメンバーがある内部配列には受け入れられても別の配列には受け入れられない場合、後続のリクエストが誤ったハンドラに関連付けられる可能性があります。したがって、リクエストがあるルートとして検証されても、別のルートのコールバックを使用して実行される可能性があります。

セキュリティへの影響:

  • REST リクエスト/ハンドラの非同期化。
  • 誤ったルートスキーマに対する検証。
  • 予期しないネストされたバッチ実行。
  • 制約されたコードパスへの事前認証での到達可能性。
  • CVE-2026-60137 と組み合わせると、SQL インジェクションおよびさらなる侵害の可能性。

CVE-2026-60137 — author__not_in SQLインジェクション

影響を受ける WP_Query 実装は、SQL の NOT IN (...) 条件を構築する前に author__not_in を一貫して正規化しません。

このパラメータは通常、整数の著者 ID のリストを想定しています。スカラー文字列が、意図された REST スキーマ検証を受けずに脆弱なクエリ構築に到達した場合、安全でない SQL 構造がデータベースクエリに残る可能性があります。

セキュリティへの影響:

  • ブラインド SQL インジェクション。
  • ブールベースまたはタイミングベースのデータベースオラクル。
  • WordPress データベース内容の漏えいの可能性。
  • CVE-2026-63030 と連鎖させた場合の影響の増大。

影響を受けるバージョン

WordPress ブランチ影響の内容修正版
6.8.xCVE-2026-60137 のみ: 6.8.0–6.8.56.8.6
6.9.x両方の問題: 6.9.0–6.9.46.9.5
7.0.x両方の問題: 7.0.0–7.0.17.0.2
7.1 prereleaseBeta 1 が影響Beta 2
6.8 より前これら 2 つの CVE の影響なしN/A

WordPress は 2026 年 7 月 17 日に修正をリリースし、深刻度のため影響を受けるインストールに対して強制自動更新を有効にしました。


脆弱性のワークフロー```text

Unauthenticated client | v WordPress REST batch endpoint | v Malformed batch member creates request/handler misalignment | v Later request is validated against one route but dispatched using another route's handler | v Scalar author_exclude reaches WP_Query as author__not_in | v Unsafe value reaches SQL NOT IN (...) construction | v Blind SQL timing or Boolean oracle | v Potential database compromise | v Potential application-level compromise and RCE

検出器は、ルート混同(route-confusion)とSQLインジェクションのプリミティブを確認した時点で停止する必要があります。影響を受けるインストールが脆弱であることを立証するために、データを抽出したりコマンドを実行したりする必要はありません。

---

## 検出ワークフロー

### フェーズ1 — ターゲットの正規化

このツールは次のことを行います:

1. 欠落している場合は、既定の`http`または`https`スキームを追加します。
2. WordPressインストールパスを正規化します。
3. サポートされていないURLスキームと埋め込まれた資格情報を拒否します。
4. リダイレクト、プロキシ、TLS、タイムアウトの各ポリシーを適用します。

### フェーズ2 — WordPressの識別

スキャナは以下をチェックします:

- `wp-content/`への参照。
- `wp-includes/`への参照。
- WordPressジェネレーターメタデータ。
- REST APIディスカバリーリンク。
- WordPress RESTインデックス構造。
- `wp/v2`名前空間。
- オプションのフィードおよび`readme.html`フィンガープリント。

### フェーズ3 — バージョンの特定

バージョンの証拠は以下から得られます:

- HTMLジェネレーターメタデータ。
- フィードジェネレーターメタデータ。
- WordPressコアアセットのクエリ文字列。
- HTTPジェネレーターヘッダー。
- `readme.html`。
- ローカルの`wp-includes/version.php`ファイル。

証拠はスコアリングされ、調整されます。競合するリモートバージョン指標は信頼度を下げます。

### フェーズ4 — バッチルートの露出確認

スキャナは、以下を通じて`/batch/v1`の発見を試みます:```text
/?rest_route=/
/wp-json/

ルートは、次のいずれかを使用してアクセスできます:```text /?rest_route=/batch/v1 /wp-json/batch/v1

### フェーズ5 — 安全なルート混乱プローブ

この安全なプローブには次のものが含まれています:

1. 意図的に不正な形式にした内部パス。
2. 無害なネストされたパブリック`GET`を伴う、無効な投稿IDへのリクエスト。
3. それに続く`/batch/v1`リクエスト。

脆弱なサーバーは、無効な投稿リクエストがネストされたバッチリクエストとして処理される、外側の`207 Multi-Status`レスポンスを返します。

検出器は次のように報告します:```text
route-confusion-observed

次の場合です。

  • 期待される parse_path_failed マーカー。
  • ステータス 207 の2番目の外部レスポンス。
  • 無害な内部リクエストが実行されたことを示す、ネストされた responses 配列。

フェーズ6 — タイミングベースのSQLi確認

非破壊的なSQLiバリデータは、定数ブール条件のみが異なるペアのリクエストを送信する必要があります。```text False control -> no deliberate database delay True test -> deliberate database delay

The validator must:

- Accept the expected outer HTTP `207`.
- Parse both the outer and nested batch envelopes.
- Verify the malformed-request markers.
- Ensure the SQLi-bearing nested request returned a valid response.
- Collect multiple true and false samples.
- Randomize or interleave sample order.
- Compare medians rather than a single request.
- Report insufficient measurements as `inconclusive`.

A repeatable gap between true and false samples confirms that attacker-controlled input reached SQL evaluation. No database contents need to be selected or extracted.

---

## Requirements

- Python 3.9 or later.
- No third-party Python packages are required by the supplied script.
- Network access to the authorized WordPress installation.
- For local testing:
  - A disposable WordPress 7.0.1 or 6.9.4 lab.
  - A database container or dedicated test database.
  - The web service bound to `127.0.0.1`.
  - No production credentials or data.

Check Python:

バリデーターは以下を行う必要があります:

- 期待される外側のHTTP `207`を受け入れること。
- 外側とネストされたバッチエンベロープの両方を解析すること。
- 不正なリクエストマーカーを検証すること。
- SQLiを含むネストされたリクエストが有効なレスポンスを返したことを確認すること。
- 複数のtrueおよびfalseサンプルを収集すること。
- サンプル順序をランダム化またはインターリーブすること。
- 単一のリクエストではなく中央値を比較すること。
- 不十分な測定を`inconclusive`として報告すること。

trueとfalseのサンプル間の再現可能なギャップは、攻撃者が制御する入力がSQL評価に到達したことを裏付けます。データベースの内容を選択または抽出する必要はありません。

---

## 要件

- Python 3.9以降。
- 提供されるスクリプトにはサードパーティのPythonパッケージは不要です。
- 許可されたWordPressインストールへのネットワークアクセス。
- ローカルテストの場合:
  - 使い捨てのWordPress 7.0.1または6.9.4ラボ。
  - データベースコンテナまたは専用のテストデータベース。
  - `127.0.0.1`にバインドされたWebサービス。
  - 本番環境の認証情報やデータは使用しません。

Pythonを確認:```bash
python3 --version

オプションの構文検証:```bash python3 -m py_compile WP2Shell_CVE-2026-63030_POC.py

---
## インストール

同梱されているスクリプトを予測可能なファイル名に変更してください:```bash
mv 'poc(1).py' WP2Shell_CVE-2026-63030_POC.py
chmod +x WP2Shell_CVE-2026-63030_POC.py

グローバルヘルプを表示:```bash python3 WP2Shell_CVE-2026-63030_POC.py --help

バージョンを表示:```bash
python3 WP2Shell_CVE-2026-63030_POC.py --version

Commands

スクリプトは3つのコマンドを定義しています:```text remote Fingerprint and scan HTTP(S) WordPress targets. local Read the installed WordPress version from a source tree. exploit State-changing proof-of-concept path.

### 現在のビルド状況

| コマンド | ステータス |
|---|---|
| `local` | 実装済み |
| `remote` | CLIは定義されていますが、`run_remote()` は現在スタブであり、エラーを返します |
| `exploit` | 状態を変更する機能を含みます。使い捨てのローカルラボに制限し、防御的スキャニングから分離してください |

ソースは現在、`remote` について次のように出力します:```text
Remote scanning not fully implemented in this snippet. Use 'local' or 'exploit'.

Restore a complete run_remote() implementation before advertising bulk remote scanning as functional.


ローカルバージョンの評価

local コマンドは以下を読み取ります:```text /wp-includes/version.php

そして `$wp_version` を抽出します。
ツールをダウンロード