Практика
Обход каталогов (или путь обход ) состоит в том, эксплуатируя проверки недостаточной безопасности / санитарные имен файлов входных поставляемого пользователя, таким образом, что символы , представляющие «траверс к родительскому каталогу» передается на файловом 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
Повторяющиеся
символы после
заставили
перейти к корневому каталогу, а затем включить файл паролей Unix
.
Unix
- это обычный файл, используемый для демонстрации обхода каталога , так как он часто используется взломщиками для взлома паролей.
Однако в более новых системах Unix файл passwd не содержит хешированных паролей. Вместо этого они находятся в теневом файле, который не может быть прочитан непривилегированными пользователями на компьютере. Тем не менее, он по-прежнему полезен для перечисления учетных записей на компьютере, поскольку он по-прежнему отображает учетные записи пользователей в системе.
Ниже перечислены некоторые известные строки атаки через каталог:
Обычный Unix-подобный обход каталога использует
символы. Sudo, программа управления привилегиями, вездесущая в Unix, уязвима для этой атаки, когда пользователи используют подстановочный знак « глоб» (например, chown /opt/myapp/myconfig/*может использоваться с командой sudo chown baduser /opt/myapp/myconfig/../../../etc/passwd).
Обратный путь в каталогах Microsoft Windows и DOS использует последовательности символов ..\ или ../ (точки и прямой или обратный слеш)
Каждый раздел имеет отдельный корневой каталог (помеченный
Этот вид атаки стал причиной многочисленных уязвимостей Microsoft.
Проблема канонизации .
Некоторые веб-приложения сканируют строку запроса на наличие опасных символов, таких как:
предотвратить обратный путь в каталогах. Тем не менее, строка запроса обычно URI-декодируется перед использованием. Поэтому эти приложения уязвимы для прохождения каталога в процентах, например:
Проблема канонизации .
UTF-8 был отмечен Брюсом Шнайером и Джеффри Стрейфлингом как источник уязвимостей и векторов атак .
Когда Microsoft добавила поддержку Unicode на свой веб-сервер, ../
в их код был введен новый способ кодирования , в результате чего их попытки предотвращения обхода каталогов были обойдены.
Несколько процентов кодирования, такие как
переведены в / или \ символы.
Процентные кодировки были декодированы в соответствующие 8-битные символы веб-сервером Microsoft. Это исторически было правильным поведением, поскольку Windows и DOS традиционно использовали канонические 8-битные наборы символов на основе ASCII .
Тем не менее, оригинальный UTF-8 не был каноническим, и несколько строк были теперь кодировками строк, переводимыми в одну и ту же строку. Microsoft выполнила анти-обходные проверки без канонизации UTF-8 и поэтому не заметила, что ( HEX )
и ( HEX )
были одинаковыми символами при сравнении строк . Неправильное процентное кодирование, такое как
также использовалось.
Использование таких форматов архива, как zip, позволяет выполнять атаки с обходом каталогов: файлы в архиве могут быть записаны таким образом, что они перезаписывают файлы в файловой системе путем возврата. Код, который распаковывает архивные файлы, может быть написан для проверки того, что пути к файлам в архиве не участвуют в обходе пути.
Возможный алгоритм предотвращения обхода каталога должен быть следующим:
Пользователь может использовать символ NULL (указывающий конец строки), чтобы обойти все после $_GET. (Это зависит от PHP.)
Комментарии
Оставить комментарий
информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации
Термины: информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации