- بواسطة x32x01 ||
🛠️⚠️ فيه ثغرة بسيطة ظهرت بسبب إعداد غلط في سيرفر IIS، وكانت نتيجتها إن أي حد يقدر يطلب ملف نظام من السيرفر عن طريق URL زي المثال ده:
اللينك ده بيورّي مشكلة: السيرفر سامح بإن المسار الخارجي (drive path) يتكلّم مع الـweb root ويعرض ملفات نظام حسّاسة - وده خطر كبير لو السيرفر مش متحكّم في الفلاتر أو صلاحيات الملفات.
https://anywebsite.com/c:/Windows/Win.iniاللينك ده بيورّي مشكلة: السيرفر سامح بإن المسار الخارجي (drive path) يتكلّم مع الـweb root ويعرض ملفات نظام حسّاسة - وده خطر كبير لو السيرفر مش متحكّم في الفلاتر أو صلاحيات الملفات.
إيه المشكلة ؟ 🤔
- السيرفر مهيّأ بطريقة بتسمح بقراءة ملفات موجودة على النظام (مش لازم تحت مجلد الموقع).
- لما حد يقدر يجيب ملفات زي C:\Windows\Win.ini يبقى فعليًا بيطلع معلومات عن النظام، وده ممكن يقود لهجمات أكبر بعدين.
- السبب عادة: misconfiguration في IIS (virtual directories، URL canonicalization، أو سماح بطرق ربط مسارات خارجة عن الـwebroot).
ليه دي خطيرة؟ 🔥
- كشف ملفات النظام أو ملفات الكونفيج ممكن يطلع كلمات سر أو مفاتيح أو معلومات بنية الشبكة.
- استغلال بسيط ممكن يقود لتسريب بيانات أو تصعيد صلاحيات أو حتى تنفيذ أوامر لو في ثغرات تانية مرتبطة.
- الخلاصة: حتى خطأ صغير في إعدادات السيرفر ممكن يفتح باب كبير للمهاجمين.
خطوات اختبار سريعة على بيئة تجريبية:
- جهّز سيرفر IIS محلي أو VM علشان تجرب.
- حاول تزود المسار في الـURL زي المثال:
https://testsite.local/c:/Windows/Win.ini - لو ظهر محتوى الملف أو ردّ مختلف عن 404، يبقى فيه مشكلة.
- جرّب كمان مسارات تانية (مثل ملفات config، أو مجلدات خارج الـwebroot).
إزاي تصلّح الخلل؟ - خطوات عملية سريعة ✅
إعدادات سريعة في IIS
- اقفل Directory Browsing لو مفعل.
- اتأكد إن الـvirtual directories ما بتسمحش بربط مسارات من غير تحقّق.
- استخدم Request Filtering علشان تمنع نماذج URL اللي فيها نقاط أو أحرف مش متوقعة أو نمط c:/*.
- تأكد إن صلاحيات الملفات على النظام (NTFS permissions) مضبوطة: حساب الـAppPool لازم يكون ليه أقل صلاحيات ممكنة.
حماية عبر web.config
ضمّن قواعد تمنع الوصول لملفات النظام أو المسارات اللي مش ضمن الـwebroot. مثال (بشكل مبسّط): XML:
<system.webServer>
<security>
<requestFiltering>
<!-- منع أي URL يحتوي على نمط drive letter -->
<denyUrlSequences>
<add sequence="c:/" />
<add sequence="C:/" />
</denyUrlSequences>
</requestFiltering>
</security>
</system.webServer> إضافات ونصايح
- حدّث IIS وWindows لآخر الباتشات.
- راجع الـlogs دوريًا علشان تكتشف محاولات استدعاء ملفات غريبة.
- استخدم WAF (Web Application Firewall) يقدر يفلتر أنماط الاستغلال دي.
- اختبر أمان بيئتك بانتظام (pentest) وخليك متابع لنتائج السكَننج.
خلاصة سريعة - Checklist علشان تحمي سيرفر IIS ✍️
- أقف Directory Browsing
- فعّل Request Filtering ومنع c:/ وأنماط مش طبيعية
- اضبط صلاحيات AppPool وملفات النظام (Least Privilege)
- حدّث السيرفر والـOS بالباتشات الأمنية
- ركب WAF ومراقبة للـlogs
- اعمل اختبارات أمنية دورية وPenTest
التعديل الأخير: