زمان جاری : شنبه 29 اردیبهشت 1403 - 12:11 بعد از ظهر
نام کاربری : پسورد : یا عضویت | رمز عبور را فراموش کردم



تعداد بازدید 1759
نویسنده پیام
admin آفلاین
admin

ارسال‌ ها23
عضویت12 /11 /1392
تشکرها1
باگ rfi
سلام دوستان./
در این قسمت از تاپیک نوبت به باگ حساس و خطرناک RFI رسیده. پس ابتدا این باگ رو برای شما تشریح می کنم سپس راههای مقابله با آن را بررسی می کنیم./

باگ RFI که مخفف Remote File Inclution است عموما بر اثر انتخاب و نمایش صفحه به متد GET رخ می دهد!
این نوع حملات که به حملات راحت نیز معروف هستند زمانی رخ می دهند که یکی از چهار تابع زیر در کد بدون کنترل و با استفاده از متد GET (گرفتن ورودی و صفحه مورد نظر از طریق url) بکار رفته باشد:کد PHP:
کد:

کد:

include
include_once
require
require_once



کار این توابع چیست؟
این توابع صفحات و کدهای رو به برنامه ما (صفحه ما) اضافه می کنند. مثلا فرض کنید که برای اتصال به بانک اطلاعاتی نیاز به دانستن نام کاربری و رمز عبور دیتابیس است. حال فرض کنید ما در طول برنامه بخواهیم 20 بار با دیتابیس ارتباط برقرار کنیم. بجای نوشتن 20 بار نام کاربری و رمز عبور یکبار آن را در یک فایل جدا وارد کرده و یکبار در اول برنامه این فایل را درخواست می کنیم بوسیله 4 تابع بالا.

در بعضی مواقع نیاز داریم که بصورت پویا صفحات مورد نظر ما درخواست و به برنامه اصلی ما ملحق شوند. مثلا هنگامی که بخواهیم تعداد صفحات زیادی را به برنامه ملحق کنیم مانند صفحات پروفایل هر شخص که باید در یک صفحه خاص نمایش داده شود.

حال برای اینکار یکی از این روش ها اینست که صفحات پروفایل را به نام خود کاربر ذخیره شود و با استفاده از متد GET همان نام درخواست شود.کد PHP:
کد:

کد:

<?php
$page
=$_GET['page'];
include(
$page);
?>



اما اگر کاربر شیطون ما بیاد و یک مسیر دلخواه رو به آدرس مرورگر خودش مثلا آدرس یک شل بده اونوقت کنترل کامل وب سایت و یا حتی سرور را در اختیار خود گرفته است!!!کد:http://example.com/index.php?page=[shell]در ادامه نحوه پچ این باگ تشریح خواهد شد...

موفق باشید./
یکشنبه 01 تیر 1393 - 16:25
ارسال پیام نقل قول تشکر گزارش







برای ارسال پاسخ ابتدا باید لوگین یا ثبت نام کنید.


پرش به انجمن :