آموزش امنیت وب

باگ RFI و LFI چیست و چگونه به وجود می آید؟

باگ LFI و RFI چیست؟

امروز با این مقاله با هم این دو باگ را برسی می کنیم، که چگونه به وجود می آید.

باگ RFI و LFI تا حد زیادی شبیه یک دیگر هستند، همانطور که از اسمش هم پیداست اجازه ی دسترسی به فایل های روی سرور را به ما می دهد.

باگ LFI مخفف Local File inclusion و باگ RFI مخفف Remote File Inclusion است، و اما چگونه این باگ رخ می دهد؟ این دو باگ زمانی اتفاق می افتد که برنامه نویس ما فایلی را include کند و آدرس را از کاربر دریافت کند.

اما برای برسی دقیق تر باگ LFI بیشتر در اشتباهات برنامه نویس در استفاده از توابعی مثل include , require اتفاق می افتد. و باگ RFI به وسیله مراقب نبودن برنامه نویس در استفاده از توابع  Include است.

برای مثال به کد های زیر توجه کنید:

در اینجا اگر هکر در index file از متد get آدرس یک فایل text که محتوای آن کد های Shell باشد، و آن را که روی سرور خود ریخته استارت کند Shell اجرا می شود، چون آدرس Include شده خارجی است این باگ RFI خواهد بود.

اما اگر هکر از index file متد get آدرس یک فایل داخلی را وارد کند، فایل پیدا می شود و چون داخلی است این باگ LFI می باشد.

این مطلب را از دست ندهید:  حملات CSRF یا جعل درخواست فرا وبگاهی

چگونه این مشکل را برطرف کنیم؟

فایلی که توسط کاربر وارد شده است را از یک لیست، چک بکنیم و اکر وارد لیست بود include شود. برای مثال:

حال اگر شما ادمین سرور هستید فایل allow_url_fopen را خاموش بکنید، یا با دستور ini_set این کار را انجام دهید. (لازم به ذکر است فقط برای باگ RFI می باشد)

کار بعدی استفاده از دستور strpos بررسی کنیم که اگر در آدرس وارد شده بود include نشود. (لازم به ذکر است فقط برای باگ RFI می باشد)

در آخر می توانیم با استفاده از str_replace می توانیم آدرس داده شده را از دو کارکتر (“/” , “.”) پاک کنیم.

امیدوارم دراین آموزش با این دو باگ آشنا شده باشید و بتوانید جلوی آنها را بگیرید.

آرین لاوی

آرین لاوی هستم؛ هم بنیانگذار " آقای امنیت " که حاصل تجربه های خودم در حوزه تخصصی امنیت وب و امنیت وردپرس را برایتان می نویسم و تلاش میکنم به شما کمک کنم تا وبسایت امنی داشته باشید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن