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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-60137 — wpsqli full SQLi extractor + dumper for CVE-2026-60137 | Kitploit
ツール/GitHubGitHub/adarshthakur14777-cyber/cve-2026-60137
Password AttacksVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration TestingDatabase Security
GitHubadarshthakur14777-cyber/cve-2026-60137

CVE-2026-60137

wpsqli full SQLi extractor + dumper for CVE-2026-60137

リポジトリを見る
17日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

wpsqli - WordPress SQLiエクストラクタ (CVE-2026-60137)

WordPressコアのauthor__not_in SQLインジェクション脆弱性を悪用する、メニュー駆動型の高速データベース抽出ツールです。このツールはデータベースの列挙とダンプに特化しており、RESTバッチルート混乱 (CVE-2026-63030) を利用して未認証でSQLiシンクに到達します。


目次

  • 概要
  • 脆弱性チェーン
  • 影響を受けるバージョン
  • 特徴
  • インストール
  • 使い方
  • メニューオプション
  • 抽出モード
  • パフォーマンス
  • 法的免責事項

概要

wpsqliは、WordPressコアの連鎖的脆弱性を悪用してデータベースへの未認証SQLインジェクションを可能にする、純粋なPython製ツールです。バッチルート混乱バグを介してWordPress REST APIの検証をバイパスし、生の文字列ペイロードを直接WP_QueryのSQLシンクに届けます。

このツールは速度と柔軟性を重視して設計されています。UNIONベースのインバンド抽出 (即時) を自動的に試行し、8スレッド並列のブールベース・ブラインド抽出にフォールバックし、必要であれば最後に逐次型の時間ベース抽出にフォールバックします。


脆弱性チェーン

このツールは、未認証のデータベース抽出を達成するために2つの独立した脆弱性を連鎖させます:

バグA — author__not_in SQLインジェクション (CVE-2026-60137)

場所: wp-includes/class-wp-query.php, WP_Query::get_posts()

author__not_inパラメータは、入力が配列の場合にのみabsint()サニタイズを適用します。文字列が渡された場合、is_array()ガードはスキップされ、文字列はimplode()を変更されずに通過し、生のままSQLの$where句に連結されます。

root@kitploit:~
// Line 2404: guard only fires for ARRAYS
if ( is_array( $query_vars['author__not_in'] ) ) {
    $query_vars['author__not_in'] = array_unique( array_map( 'absint', $query_vars['author__not_in'] ) );
    sort( $query_vars['author__not_in'] );
}
// Line 2408: string passes straight through
$author__not_in = implode( ',', (array) $query_vars['author__not_in'] );
// Line 2409: raw interpolation
$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";

バグB — RESTバッチルート混乱 (CVE-2026-63030)

REST APIの投稿エンドポイントはauthor_excludeをauthor__not_inにマッピングしますが、整数のtype => 'array'として宣言しているため、コアは文字列を強制変換もしくは拒否します。バグBは、RESTバッチエンドポイント (/wp-json/batch/v1) の非同期化バグを悪用して、文字列を検証プロセスをすり抜けさせます。wp_parse_url()が拒否する不正な形式のパスプライマーを注入することで、WP_Errorがバッチリクエストリストにシードされ、$matchesと$validationの同期が崩れます。これにより、後続のサブリクエストがパラメータ検証なしで誤ったハンドラの下でディスパッチされることが可能になります。


影響を受けるバージョン

注意: SQLiシンクに到達できるのは、永続オブジェクトキャッシュ (Redis/Memcached) が使用されていない場合のみです。


特徴

  • 依存関係なし: 純粋なPython標準ライブラリのみ。pip installは不要です。
  • 3層抽出:
    • UNIONベース: 偽のwp_posts行を作成し、単一のHTTPリクエストで文字列全体を抽出します (即時)。
    • ブールベース・ブラインド (並列): UNIONがオブジェクトキャッシュによってブロックされた場合、8つの並列スレッドとバイナリ検索を使用して、1文字あたり約7リクエストで抽出します。
    • 時間ベース (逐次): ブールオラクルが行を返さない場合のフォールバック。
  • 完全な列挙: データベース、テーブル、カラムの一覧表示。
  • テーブルダンプ: 個別のテーブル、DB内の全テーブル、または完全ダンプをタイムスタンプ付きテキストファイルに出力します。
  • 優雅な中断: 抽出中のCtrl+Cで現在のクエリを停止し、セッションをクラッシュさせることなく部分的な結果を返します。
  • セッション永続化: 一度接続すれば、対話型メニューから複数のクエリを実行できます。
  • URLサニタイズ: エンドポイントの二重化を防ぐため、ホスト入力からパス/クエリを自動的に除去します。
  • クラック対応出力: ユーザーダンプにはID|user_login|user_pass形式が含まれ、hashcat -m 35500でそのまま使用できるbcryptハッシュが含まれます。

インストール

インストールは不要です。ダウンロードして実行するだけです:

root@kitploit:~
# Clone the repository
git clone https://github.com/AdarshThakur14777-cyber/CVE-2026-60137.git
# Navigate to directory
cd CVE-2026-60137

# Run
python main.py

要件:

  • Python 3.8以上
  • 外部パッケージ不要 (標準ライブラリのみ)

使い方

対話型メニューを起動します:

root@kitploit:~
python main.py

セッション例

root@kitploit:~
============================================================
  WP SQLi Extractor v3 (CVE-2026-60137)
============================================================
------------------------------------------------------------
  CONNECTION
   0. Connect / Change target
   1. Check target (version + vuln confirm)
------------------------------------------------------------
  FINGERPRINTING
   2. MySQL version (@@version)
   3. Current database name
   4. Current DB user
   5. WordPress table prefix
   6. Dump wp_users (ID, login, pass hash)
   7. Custom SQL query
   8. Extract all fingerprints (2+3+4+5)
------------------------------------------------------------
  ENUMERATION
   9. List all databases
  10. List all tables (current DB)
  11. List columns of a table
------------------------------------------------------------
  DUMPING
  12. Dump a specific table
  13. Dump all tables (current DB)
  14. Full dump to file (all tables + all rows)
------------------------------------------------------------
  15. Exit
============================================================

Choice: 0
Target (https://example.com): https://target.com
Skip TLS verify? (y/N):
Sleep delay for time-based (default 3):

[*] Connecting to https://target.com ...
[+] Batch endpoint: https://target.com/wp-json/batch/v1
[*] WordPress version: 6.9.4 VULNERABLE
[*] Testing UNION-based extraction ...
[!] UNION not available — trying boolean blind (8 parallel threads) ...
[+] Boolean-blind mode active (8 threads, ~7 reqs/char)
[+] Time-based also works (0.69s vs 3.78s)

メニューオプション

接続

オプション説明
0ターゲットに接続 (URLを自動サニタイズ)
1脆弱性と現在の抽出モードを検証

フィンガープリンティング

列挙

オプション説明
9MySQLサーバー上のすべてのデータベースを一覧表示
10現在または指定されたデータベース内のすべてのテーブルを一覧表示
11特定のテーブルのすべてのカラム名を一覧表示

ダンプ

オプション説明
12単一のテーブルをダンプ (行数制限とファイル保存はオプション)
13現在のデータベース内のすべてのテーブルをダンプ
14完全ダンプ — すべてのテーブル + すべての行をタイムスタンプ付きファイルに出力

抽出モード

このツールは速度順に3つの抽出モードを自動的に試行します:

1. UNIONベース (即時)

抽出した値をpost_titleカラムに16進エンコードした ( ||..||マーカーでラップされた) 偽のwp_posts行を作成します。REST APIがそれをレスポンスにそのまま反映するため、文字列全体が単一のHTTPリクエストで取得できます。

  • 1クエリあたり1リクエスト
  • 永続オブジェクトキャッシュがアクティブでない場合にのみ動作
  • 結果のエンコードにCONCAT(0x7c7c, HEX(CAST((<expr>) AS CHAR)), 0x7c7c)を使用

2. ブールベース・ブラインド (並列)

UNIONが使用できない場合、8つの並列スレッドとバイナリ検索を使用して各文字を抽出します。ブールオラクルは、注入されたAND (condition)が行を返すかどうかをチェックします。

  • 1文字あたり約7リクエスト (8スレッドで並列化)
  • ASCII範囲32〜126のバイナリ検索
  • 抽出前にバイナリ検索で文字列長を事前スキャン
  • 進捗は完了文字数として表示

3. 時間ベース (逐次)

ブールオラクルが行を返さない場合のフォールバック (例: 公開投稿が0件のサイト)。IF(condition, SLEEP(N), 0)を使用して、レスポンスの遅延に真偽をエンコードします。

  • 1文字あたり約7 × スリープ遅延秒 (逐次)
  • 最も低速なモードだが、空のデータベースでも動作

パフォーマンス

タイミング例 (ブール、8スレッド)


法的免責事項

このツールは、許可されたセキュリティテストおよび教育目的専用に設計されています。このツールは、自分が所有するシステム、またはテストする明示的な書面による許可を得たシステムに対してのみ使用してください。コンピュータシステムへの無許可アクセスは違法です。

このツールの作者および貢献者は、本ソフトウェアによって引き起こされた誤用や損害について一切の責任を負いません。自己責任で使用してください。


クレジット

  • 脆弱性チェーンの発見者: Adam Kues (Assetnote / Searchlight Cyber)
  • UNION偽投稿テクニック: sergiointel/wp2shell-poc (考案者)
  • 実装のベース: Icex0/wp2shell-poc
  • ルート混乱検出テクニック: Hadrian / Icex0

ライセンス

このツールは、教育および許可されたテスト目的のためにのみ提供されます。

ツールをダウンロード
バージョン範囲ステータス
6.8.0 – 6.8.5SQLiバグは存在するが、チェーンには到達不可 (バッチ混乱は6.9.0で導入)
6.9.0 – 6.9.4脆弱 — 完全な未認証チェーン
7.0.0 – 7.0.1脆弱 — 完全な未認証チェーン
6.8.6パッチ済み (SQLi)
6.9.5パッチ済み
7.0.2パッチ済み
7.1-beta2+パッチ済み
オプション説明
2MySQLバージョンを抽出 (SELECT @@version)
3現在のデータベース名を抽出 (SELECT DATABASE())
4現在のDBユーザーを抽出 (SELECT CURRENT_USER())
5WordPressのテーブルプレフィックスを抽出
6wp_usersテーブルをダンプ (ID、ログイン、パスワードハッシュ)
7カスタムSQLクエリを実行
8すべてのフィンガープリント (オプション2〜5) を順番に実行
モードクエリあたりのリクエスト数速度使用される状況
UNION1即時オブジェクトキャッシュなし、カラム数が一致
ブール (8スレッド)約7 × 文字列長 / 8高速UNIONがブロックされ、行あり
時間ベース約7 × スリープ × 文字列長低速ブールオラクルに使用する行がない
抽出対象文字数リクエスト数時間
MySQLバージョン~20~140~15秒
データベース名~15~105~12秒
DBユーザー~25~175~20秒
テーブルプレフィックス~5~35~5秒
wp_users行 (200文字)200~1400~2分