شرح Path Disclosure

السلام عليكم
في الكثير من الأحيان تسمع عن Path Disclosure كثغرة لكن اليوم سنوضح ما هو Path Disclosure و فيم يستعمل .
ASP_Error

أولاً : ما هو Path Disclosure


 

كشف المسار أو Path Disclosure هو عبارة عن طلب أو صفحة تقوم بعرض مسار الملف الحقيقي في السيرفر مع إعطاء معلومات حول صيغة الملف والمجلد الموجود به وهي ليست ثغرة بقدر ما هي كشف للمعلومات على السيرفر . ولهذه المعلومات فوائد سوف نقوم بعدها في نهاية المقال .

سبب ظهور المسار الافتراضي ؟ 


تعد رسائل الأخطاء في الصفحات هي السبب الرئيسي (غالباً) في ظهور مسار الملف الذي يحصل فيه الخطأ وهذه تعد فائدة للمطور لكشف الملف الذي يعرقل عمل التطبيق أو الموقع وهذا سببه mis-configuration في السيرفر نفسه أو في الصفحة يمكن تلافي هذه الأخطاء عن طريق منع ظهورها من خلال ملف ترتيب السيرفر config سنعرض الإصلاح لكل سيرفر أيضا ولكل لغة برمجة .

ظهور المسار يكون خطرا في بعض الحالات وليس دائما.

شكل صفحات الأخطاء : 


صفحات asp و aspx في سيرفرات IIS


صفحات php

7-11-2016 1-24-25 PM

فوائد كشف المسار 


  • معرفة إصدار السيرفر .
  • معرفة سلوك التطبيق أو الموقع من خلال إدخال مدخلات برمجية مثل ‘ او @ , % ^ & ! <>
  • في حالة اكتشاف ثغرة LFI ستعرف أين يمكنك العثور على الملفات المهمة .
  • معرفة نوع الWEB APP المستخدم من خلال معرفة الملفات ومجلداتها .
  • اكتشاف اسم المدير  .

اكتشاف المسارات الخطرة 


لنفرض أنه ظهر هذا المسار في الصفحة

1- /var/www/html

هذا المسار غير خطر ولا يوجد به أية معلومات فهو المسار الافتراض في سيرفرات ليونكس الخاص ب apache  لذلك لا يمكن الحصول على معلومات مفيدة منه .

2-/home/abdullah/public_html/ 

في هذا المثال ظهر اسم المستخدم abdullah في السيرفر وهذا أمر خطير يمكن من خلاله أخذ هذا الاسم وعمل هجوم تخمين في ssh أو في سيرفر ftp سوف نقوم بتطبيق مثال في الدرس القادم .

3- /var/www/html/script-name/admin/auth.php

في هذا المسار تم كشف اسم السكربت ومسار لوحة الأدمن لذلك يمكن البحث عن اسم السكربت ومحاولة اكتشاف ثغرات به .

قد يحصل في بعض الأحيان ظهور ملفات أو مسارات خارج مسار webroot لكن هذا نادر في حال حصول المهاجم على هذه العلومات من الممكن أن يقوم بمهاجمة ذاك المصدر في حال حصوله على ثغرة LFI  .

إصلاح صفحات php  

يمكن إصلاح صفحات php حتى لا تظهر المسار بإضافة هذا السطر في بداية الصفحة لفهم الدالة أكثر هنا .
error_reporting(0);x

إصلاح صفحات asp في سيرفر iis 

في ملف السيرفر أضف
<customErrors mode=”Off”/>

في سيرفرات apache 

ابحث عن ملف php.ini وضع هذا الكود في السطر الأخير أو أي سطر

display_errors = Off

ملاحظات للمطورين 


في حال كونك مطورا للويب فأنت ترغب كثيرا في معرفة سلوك التطبيق أو الموقع الذي تعمل عليه لذلك في حال تعطيل خاصية الإبلاغ عن الأخطاء سيكون من الصعب عليك تحديد الملف الذي يعرقل البرنامج . نصيحتي لك أن تعمل على السيرفر الداخلي (locathost) وحين ترفع التطبيق أو السكربت إلى السيرفر حاول أن تقلل ظهور الأخطاء أو يمكنك برمجة صفحة للأخطاء تظهر المعلومات التي تحتاجها في debugger بالإضافة إلى أنه لا يعد أمرا سيئا إظهار المسار في بعض الأحيان لك

في موقع ورد بريس ينصح المبرمجين إلى تعطيل صفحات الاخطاء


سوف ننشر debugger آمن في أقرب وقت لمطوري php بالمجان سنعلن عنه فور الانتهاء منه