Что нового

Article [13.0] Burp Suite. Directory Traversal

Vander 0

Vander

Команда форума
10.11.2019
495
1 158
1595154789565.png

В этом разделе мы разберемся, что такое Directory Traversal, опишем, как проводить атаки directory traversal и обойти препятствия, а также объясним, как предотвратить уязвимости directory traversal.

file-path-traversal_1.png

Что такое Directory Traversal?

Directory Traversal (также известный как File Path Traversal) - это уязвимость веб-безопасности, которая позволяет злоумышленнику читать произвольные файлы на сервере, на котором выполняется приложение. Это может включать код приложения и данные, учетные данные для внутренних систем и конфиденциальные файлы операционной системы. В некоторых случаях злоумышленник может записывать в произвольные файлы на сервере, позволяя им изменять данные или поведение приложения, и в конечном итоге получить полный контроль над сервером.

Чтение произвольных файлов через Directory Traversal

Рассмотрим приложение для покупок, которое отображает изображения предметов для продажи. Изображения загружаются через некоторый HTML-код, например:

Код:
<img src = "/ loadImage? filename = 218.png">
URL-адрес loadImage принимает параметр имени файла и возвращает содержимое указанного файла. Сами файлы изображений хранятся на диске в папке /var/www/images/. Чтобы вернуть изображение, приложение добавляет запрашиваемое имя файла в этот базовый каталог и использует API файловой системы для чтения содержимого файла. В приведенном выше случае приложение считывает из следующего пути к файлу:

Код:
/var/www/images/218.png
Приложение не обеспечивает защиты от атак directory traversal, поэтому злоумышленник может запросить следующий URL-адрес для получения произвольного файла из файловой системы сервера:

Код:
https://insecure-website.com/loadImage?filename=../../../etc/passwd
Это заставляет приложение прочитать файл по следующему пути:

Код:
/var/www/images/../../../etc/passwd
Последовательность ../ применяется к пути к файлу и означает переход на один уровень вверх в структуре каталогов. Три последовательные последовательности ../ поднимаются от /var/www/images/ к корню файловой системы, поэтому файл, который фактически читается:

Код:
/etc/passwd
В операционных системах на основе Unix это стандартный файл, содержащий сведения о пользователях, зарегистрированных на сервере.

В Windows и ../ и ..\ являются допустимыми последовательностями обхода каталогов, и эквивалентная атака для извлечения стандартного файла операционной системы:

Код:
https://insecure-website.com/loadImage?filename=..\..\..\windows\win.ini
Практический пример

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

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

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

1595156888263.png

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

1595156989594.png

В Burp Suite находим ответ на этот запрос, в теле которого находится содержимое /etc/passwd.

1595157102270.png

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

Продолжение следует, спасибо за внимание.​
 
Верх Низ