Что нового

Article [13.1] Burp Suite. Общие препятствия при эксплуатации уязвимостей Directory Traversal

Vander 0

Vander

Команда форума
10.11.2019
495
1 158
1_ed3vgxXGXa7X3HlGxisxHQ.jpeg

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

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

Вы можете использовать абсолютный путь от корня файловой системы, такой как filename = /etc/passwd, чтобы напрямую ссылаться на файл без использования последовательностей обхода.

Ниже мы разберем несколько практических примеров решения подобных задач.

Практический пример

Эта лабораторная работа содержит уязвимость Directory Traversal при отображении изображений продукта.

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

Чтобы решить лабораторную работу, получите содержимое файла /etc/passwd.

После того, как мы нашли изображение на сайте, смотрим его локальный путь и меняем расположение картинки на путь к файлу /etc/passwd.

1595158367841.png

В Burp Suite в истории запросов видим ответ от сервера включающий содержимое нужного нам файла:

1595158474619.png

Задание выполнено.

Возможно, вы сможете использовать вложенные последовательности обхода, такие как .... // или .... \ /, которые вернутся к простым последовательностям обхода, когда внутренняя последовательность будет удалена.

Практический пример

Эта лабораторная работа содержит уязвимость Directory Traversal при отображении изображений продукта.

Приложение удаляет последовательности обхода пути из предоставленного пользователем имени файла перед его использованием.

Чтобы решить лабораторную работу, получите содержимое файла /etc/passwd.

Находим на уязвимом сайте изображение и жмем просмотреть его:

1595156888263.png

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

Код:
https://security-academy.net/image?filename=....//....//....//etc/passwd

1595159048558.png

Приложение уберет лишние слеши и точки и ответ в Burp Suite будет содержать искомую информацию.

1595159373135.png

Вы можете использовать различные нестандартные кодировки, такие как ..%c0%af или ..%252f, чтобы обойти возможные фильрации ввода.

Практический пример

Эта лабораторная работа содержит уязвимость Directory Traversal при отображении изображений продукта.

Приложение блокирует ввод, содержащий последовательности обхода пути. Затем он выполняет URL-декодирование ввода перед его использованием.

Чтобы решить лабораторную работу, получите содержимое файла /etc/passwd.

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

Код:
https://academy.net/image?filename=..%252f..%252f..%252fetc%252fpasswd
1595160546428.png

Приложение декодирует ввод перед выполнением и ответ в Burp Suite будет содержать искомую информацию.

1595160631679.png

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

Например:

Код:
filename=/var/www/images/../../../etc/passwd
Практический пример

Эта лабораторная работа содержит уязвимость Directory Traversal при отображении изображений продукта.

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

Чтобы решить лабораторную работу, получите содержимое файла /etc/passwd.

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

Код:
https://academy.net/image?filename=/var/www/images/../../../etc/passwd
В Burp Suite, в истории запросов видим ответ от сервера включающий содержимое нужного нам файла:

1595161014456.png

Если приложение требует, чтобы предоставленное пользователем имя файла заканчивалось ожидаемым расширением файла, например .png, то можно было бы использовать нулевой байт для эффективного завершения пути к файлу до требуемого расширения.

Например:

Код:
filename=../../../etc/passwd%00.png
Практический пример

Эта лабораторная работа содержит уязвимость Directory Traversal при отображении изображений продукта.

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

Чтобы решить лабораторную работу, получите содержимое файла /etc/passwd.

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

Код:
https://academy.net/image?filename=../../../etc/passwd%00.png
1595161406480.png

В Burp Suite, в истории запросов видим ответ от сервера включающий содержимое нужного нам файла:

1595161466244.png


На этом всё, спасибо за внимание, материал подготовлен специально для protey.net.​
 
Последнее редактирование:
Верх Низ