Рубрики

Обход пути и предотвращение

Атака обхода пути позволяет злоумышленникам получить доступ к каталогам, к которым они не должны обращаться, например, к файлам конфигурации или любым другим файлам / каталогам, которые могут содержать данные сервера, не предназначенные для общего доступа.

Используя атаку обхода пути (также известную как обход каталога), злоумышленник может получить доступ к данным, хранящимся вне корневой веб-папки (обычно / var / www /). Управляя переменными, которые ссылаются на файлы с последовательностями «точка-точка-косая черта (../)» и их вариациями, или используя абсолютные пути к файлам, можно получить доступ к произвольным файлам и каталогам, хранящимся в файловой системе, включая исходный код или конфигурацию приложения. и критические системные файлы.

Давайте предположим, что у нас есть веб-сайт, работающий на

 http://www.mywebsite.com.

Предположим также, что веб-сервер уязвим для атаки обхода пути. Это позволяет злоумышленнику использовать специальные последовательности символов, например ../, которые в каталогах Unix указывают на его родительский каталог, проходить по цепочке каталогов и получать доступ к файлам вне / var / www или файлам конфигурации, подобным этому.

Типичный пример уязвимого приложения в коде PHP:

<?php

$template = 'red.php';

if (isset($_COOKIE['TEMPLATE']))

   $template = $_COOKIE['TEMPLATE'];

include ("/home/users/phpdemo/templates/" . $template);

?>

Используя ту же технику ../, злоумышленник может вырваться из каталога, содержащего PDF-файлы, и получить доступ ко всему, что он хочет в системе.

http://www.mywebsite.com/?template= ../../../../../../../../../etc/passwd

профилактика
Возможный алгоритм предотвращения обхода каталога будет следующим:

  • Предоставление соответствующих разрешений для каталогов и файлов. Файл PHP обычно запускается как пользователь www-данных в Linux. Мы не должны разрешать этому пользователю доступ к системным файлам. Но это не мешает этому пользователю получать доступ к файлам конфигурации веб-приложения.
  • Обработайте запросы URI, которые не приводят к запросу файла, например, выполнив перехват в пользовательском коде, прежде чем продолжить ниже.
  • Когда необходимо выполнить запрос URI для файла / каталога, создайте полный путь к файлу / каталогу, если он существует, и нормализуйте все символы (например,% 20 преобразовано в пробелы).
  • Предполагается, что полный путь к документному корню известен как нормализованный путь, и эта строка имеет длину N. Предположим, что никакие файлы вне этого каталога не могут быть обработаны.
  • Убедитесь, что первые N символов полного пути к запрашиваемому файлу в точности совпадают с «Корнем документа».
  • Использование жестко заданного заранее заданного расширения файла для суффикса пути не ограничивает область атаки файлами с таким расширением.

источники
https://en.wikipedia.org/wiki/Directory_traversal_attack
http://projects.webappsec.org/w/page/13246952/Path%20Traversal
https://www.owasp.org/index.php/Path_Traversal

Эта статья предоставлена Акашем Шараном . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Обход пути и предотвращение

0.00 (0%) 0 votes