
प्रमाणित PoC for CVE-2026-0911: WordPress Hustle प्लगइन के मॉड्यूल आयात एंडपॉइंट में कमज़ोर फ़ाइल अपलोड और अनाथ फ़ाइल व्यवहार का परीक्षण करता है, जिसमें मल्टी-टारगेट स्कैनिंग और पेलोड अनुकूलन शामिल है।
WordPress प्लगइन Hustle (wordpress-popup, WPMU DEV) के लिए CVE-2026-0911 के अंतर्गत, प्रमाणीकरण-आवश्यक मॉड्यूल आयात एंडपॉइंट के माध्यम से अपलोड व्यवहार का परीक्षण करने वाला एक अनुसंधान / पेंटेस्ट सहायक उपकरण है।
इस रिपॉजिटरी या फ़ाइल सेट के भीतर CVE-2026-0911.py स्क्रिप्ट का उपयोग केवल उन सिस्टमों पर किया जाना चाहिए जिनके आप स्वामी हैं या जिनका लिखित अनुमति से परीक्षण कर रहे हैं।
प्रभावित संस्करणों में (Wordfence/NVD: 7.8.9.2 और पहले) action_import_module() के भीतर wp_handle_upload() कॉल test_type => false के साथ की जाती है, इसलिए फ़ाइल प्रकार सत्यापन कमज़ोर रहता है; आयात के बाद JSON सत्यापन विफल होने पर भी अपलोड की गई फ़ाइल हटाई नहीं जा सकती ("अनाथ" फ़ाइल)। यदि सर्वर के अंतर्गत PHP चलाता है, तो यह व्यवहार में दूरस्थ कोड निष्पादन की ओर जाने वाली श्रृंखला का हिस्सा हो सकता है। पैच किए गए संस्करणों में और अस्थायी के साथ प्रतिबंध आता है।
wp-content/uploadstest_type => trueupload_mimes.jsonविस्तृत तकनीकी सारांश के लिए NVD रिकॉर्ड और Wordfence संदर्भ देखें।
from __future__ import annotations के साथ संगत हैं)स्थापना उदाहरण:
pip install requests
कम से कम एक लक्ष्य (-u या -l) और मान्य WordPress सत्र (--cookie या --cookie-file) अनिवार्य है।
python CVE-2026-0911.py -u "https://ornek.com" --cookie "wordpress_logged_in_...=...; ..."
सहायता:
python CVE-2026-0911.py --help
| पैरामीटर | विवरण |
|---|---|
-u, --url | एकल लक्ष्य रूट URL (जैसे https://site.com) |
-l, --list | प्रति पंक्ति एक URL वाली फ़ाइल (# के साथ टिप्पणी) |
--cookie | ब्राउज़र से कॉपी की गई कुकी स्ट्रिंग |
--cookie-file | कुकी को एक पंक्ति में रखने वाली फ़ाइल |
--nonce | hustle_single_action के लिए मैन्युअल WordPress nonce (स्वचालित निष्कर्षण के बजाय) |
--admin-page | वह admin.php?page= मान जिससे nonce निकाला जाएगा (डिफ़ॉल्ट: hustle_popup_listing) |
--module-id | POST moduleId (डिफ़ॉल्ट 0: अमान्य मॉड्यूल → आयात प्रवाह) |
--module-type | popup, slidein, embedded, social_sharing |
--module-mode | जैसे informational, optin |
--remote-name | मल्टीपार्ट में भेजा गया फ़ाइल नाम (डिफ़ॉल्ट: probe_rce.php) |
--payload-file | अपलोड की जाने वाली सामग्री फ़ाइल से पढ़ें (--uploader और डिफ़ॉल्ट प्रोब को ओवरराइड करता है) |
--uploader | अंतर्निहित मिनी PHP फ़ॉर्म-अपलोडर बॉडी का उपयोग करें |
--workers | सूची मोड में समवर्ती थ्रेड संख्या (डिफ़ॉल्ट: 8) |
--timeout | अनुरोध टाइमआउट सेकंड (डिफ़ॉल्ट: 25) |
--verify-ssl | TLS सत्यापन चालू करें (डिफ़ॉल्ट: बंद) |
--debug | अतिरिक्त डिबग आउटपुट |
--quiet | डोमेन/चरण लॉग बंद करें; सारांश-केंद्रित |
admin-ajax.php POST सारांश, संभावित उम्मीदवार URL। बहु-लक्ष्य में पंक्तियाँ थ्रेड्स से आने के कारण कभी-कभी मिश्रित दिख सकती हैं; प्रत्येक पंक्ति में लक्ष्य डोमेन नाम होता है।--quiet के साथ ये विवरण दबा दिए जाते हैं।-o फ़ाइल में जोड़े जाते हैं (append), flush / संभव हो तो fsync के साथ डिस्क पर लिखे जाते हैं। डिफ़ॉल्ट फ़ाइल नाम: cve-2026-0911-hits.txt (कार्यशील निर्देशिका में पूर्ण पथ सारांशित किया जाता है)।एकल साइट, TLS सत्यापन के साथ, डिबगिंग:
python CVE-2026-0911.py -u "https://lab.local" --cookie-file cookie.txt --verify-ssl --debug
सूची स्कैन, 16 कर्मचारी, कस्टम आउटपुट:
python CVE-2026-0911.py -l hedefler.txt --cookie "..." --workers 16 -o sonuclar.txt
अंतर्निहित अपलोडर बॉडी और कस्टम दूरस्थ फ़ाइल नाम:
python CVE-2026-0911.py -u "https://lab.local" --cookie "..." --uploader --remote-name test.php
optinVars के भीतर single_module_action_nonce फ़ील्ड से पढ़ा जाता है।moduleId=0 पथ में प्लगइन, अपलोड से पहले मॉड्यूल सीमा के कारण त्रुटि लौटा सकता है; इस स्थिति में फ़ाइल नहीं लिखी जाती।wp-content/uploads/YYYY/MM/ धारणा के अनुसार उत्पन्न होते हैं; यदि WordPress फ़ाइल का नाम बदल देता है तो वास्तविक पथ भिन्न हो सकता है।--cookie विभिन्न डोमेन पर काम नहीं करता; बहु-साइट परीक्षण में प्रत्येक वातावरण के लिए उपयुक्त सत्र आवश्यक है।0, अन्यथा गैर-शून्य कोड (स्क्रिप्ट के भीतर main रिटर्न)।Ctrl+C के साथ रुकावट: 130।यह उपकरण केवल कानूनी सुरक्षा परीक्षण, शिक्षा और रक्षा उद्देश्यों के लिए है। अनधिकृत सिस्टम पर उपयोग कानून के विरुद्ध है और गंभीर दंड का कारण बन सकता है। लेखक और योगदानकर्ता दुरुपयोग के लिए उत्तरदायी नहीं ठहराए जा सकते।
-o, --output | सफल "हिट" पंक्तियों को जोड़ने वाली फ़ाइल |