السلام عليكم

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

 

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


 

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

 

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


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

 

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

 

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


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

 

ASP_Error

 

صفحات 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 بالاضافة الى انه لا يعد امر سيء اظهار المسار في بعض الاحيان لك

 

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

 

https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-certain-files

 

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

 

لاي استفسار يمكنكم التواصل معي عبر حسابي في تويتر من هنا 

تحياتي وتحيات فريق isecur1ty