Атака обхода каталога кратко

Практика



Обход каталогов (или путь обход ) состоит в том, эксплуатируя проверки недостаточной безопасности / санитарные имен файлов входных поставляемого пользователя, таким образом, что символы , представляющие «траверс к родительскому каталогу» передается на файловом API.

Цель этой атаки - использовать уязвимое приложение для получения несанкционированного доступа к файловой системе . Эта атака использует недостаток безопасности (программное обеспечение работает именно так, как и должно), а не использует ошибку в коде.

Обратный путь в каталогах также известен как ../ атака (точка-косая черта), лазание по каталогам и обратное отслеживание. Некоторые формы этой атаки также являются каноническими атаками.

Атака обхода каталога

Пример

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

 Атака обхода каталога

Атакой против этой системы может быть отправка следующего HTTP-запроса:

GET  /vulnerable.php  HTTP / 1.0 
Cookie :  TEMPLATE = .. / .. / .. / .. / .. / .. / .. / .. / .. / etc / passwd

Генерация ответа сервера, такого как:

HTTP / 1.0  200  OK 
Content-Type :  text / html 
Сервер :  Apache
 root: fi3swerwerqR6: 0: 1: 
Системный оператор: /: / bin / ksh  
demon : *: 1: 1 :: / TMP:  
phpru: werwerj1OIf31:. 182: 100: 
dev: / main/users/home/: / bin / CSH

Повторяющиеся

../

символы после

/home/users/home/templates/

заставили

include()

перейти к корневому каталогу, а затем включить файл паролей Unix

/etc/passwd

.

Unix

/etc/passwd

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

Однако в более новых системах Unix файл passwd не содержит хешированных паролей. Вместо этого они находятся в теневом файле, который не может быть прочитан непривилегированными пользователями на компьютере. Тем не менее, он по-прежнему полезен для перечисления учетных записей на компьютере, поскольку он по-прежнему отображает учетные записи пользователей в системе.

Вариации обхода каталога

Ниже перечислены некоторые известные строки атаки через каталог:

Обратный путь в каталогах в Unix

Обычный Unix-подобный обход каталога использует

../

символы. Sudo, программа управления привилегиями, вездесущая в Unix, уязвима для этой атаки, когда пользователи используют подстановочный знак « глоб» (например, chown /opt/myapp/myconfig/*может использоваться с командой sudo chown baduser /opt/myapp/myconfig/../../../etc/passwd).

Обратный путь в каталогах в Microsoft Windows

Обратный путь в каталогах Microsoft Windows и DOS использует последовательности символов ..\ или ../ (точки и прямой или обратный слеш)

Каждый раздел имеет отдельный корневой каталог (помеченный

C:\ для определенного раздела C), и над ним нет общего корневого каталога. Это означает, что для большинства уязвимостей каталогов в Windows атака ограничивается одним разделом.

Этот вид атаки стал причиной многочисленных уязвимостей Microsoft.

Обратный путь в каталогах в кодировке URI

Проблема канонизации .

Некоторые веб-приложения сканируют строку запроса на наличие опасных символов, таких как:

  • ..
  • ..\
  • ../

предотвратить обратный путь в каталогах. Тем не менее, строка запроса обычно URI-декодируется перед использованием. Поэтому эти приложения уязвимы для прохождения каталога в процентах, например:

  • %2e%2e%2f что эквивалентно ../
  • %2e%2e/ что эквивалентно ../
  • ..%2f что эквивалентно ../
  • %2e%2e%5c что эквивалентно ..\

Обратный путь в каталогах в кодировке Unicode / UTF-8

Проблема канонизации .

UTF-8 был отмечен Брюсом Шнайером и Джеффри Стрейфлингом как источник уязвимостей и векторов атак .

Когда Microsoft добавила поддержку Unicode на свой веб-сервер, ../

в их код был введен новый способ кодирования , в результате чего их попытки предотвращения обхода каталогов были обойдены.

Несколько процентов кодирования, такие как

  • %c1%1c
  • %c0%af

переведены в / или \ символы.

Процентные кодировки были декодированы в соответствующие 8-битные символы веб-сервером Microsoft. Это исторически было правильным поведением, поскольку Windows и DOS традиционно использовали канонические 8-битные наборы символов на основе ASCII .

Тем не менее, оригинальный UTF-8 не был каноническим, и несколько строк были теперь кодировками строк, переводимыми в одну и ту же строку. Microsoft выполнила анти-обходные проверки без канонизации UTF-8 и поэтому не заметила, что ( HEX )

C0AF

и ( HEX )

2F

были одинаковыми символами при сравнении строк . Неправильное процентное кодирование, такое как

%c0%9v

также использовалось.

Zip / архив обхода атак

Использование таких форматов архива, как zip, позволяет выполнять атаки с обходом каталогов: файлы в архиве могут быть записаны таким образом, что они перезаписывают файлы в файловой системе путем возврата. Код, который распаковывает архивные файлы, может быть написан для проверки того, что пути к файлам в архиве не участвуют в обходе пути.

Возможные методы предотвращения обхода каталога

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

  1. Обработайте запросы URI, которые не приводят к запросу файла, например, выполняя перехват в пользовательском коде, прежде чем продолжить ниже.
  2. Когда должен быть выполнен запрос URI для файла / каталога, создайте полный путь к файлу / каталогу, если он существует, и нормализуйте все символы (например,
    %20
    преобразуйте в пробелы).
  3. Предполагается , что «Документ Корень» полное, нормализованы, путь известен, и эта строка имеет длину N . Предположим, что никакие файлы вне этого каталога не могут быть обслужены.
  4. Убедитесь, что первые N символов полного пути к запрашиваемому файлу точно совпадают с «Корнем документа».
  5. Если это так, разрешите возврат файла.
  6. Если нет, верните ошибку, поскольку запрос явно выходит за пределы того, что веб-серверу следует разрешить обслуживать.
  7. Использование жестко заданного заранее заданного расширения файла для суффикса пути не ограничивает область атаки файлами с таким расширением.

Пользователь может использовать символ NULL (указывающий конец строки), чтобы обойти все после $_GET. (Это зависит от PHP.)

Вау!! 😲 Ты еще не читал? Это зря!

  • Ячейки Chroot могут быть подвергнуты обходу каталога, используя, если тюрьма Chroot создана неправильно.
  • Возможные векторы атаки обхода каталогов - это открытые файловые дескрипторы каталогов за пределами тюрьмы.
  • Рабочий каталог другой возможный вектор атаки.

создано: 2020-07-02
обновлено: 2021-07-18
132406



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Криптография и Криптоанализ. Стеганография. Защита Информации и информационная безопасность.

Термины: Криптография и Криптоанализ. Стеганография. Защита Информации и информационная безопасность.