Bug Bounty, Bug Hunting, Directory Traversal, Уязвимости

#24 Bug Bounty v.2 — Directory Traversal

Здравствуйте, дорогие друзья.

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

directory traversal

Как вы можете видеть выше, символы “../” используются для перехода на один каталог выше текущего.

Directory Traversal

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

● https://example.ru/?page=index.html

Как вы можете видеть, существует параметр GET, называемый page, который используется для загрузки содержимого “index.html”. При неправильной реализации злоумышленники используют метод “../” для загрузки любого файла, который они хотят.

php script

Как вы можете видеть выше, параметр GET “page” загружается в переменную с именем “file”. Затем в строке 10 файл открывается и считывается на страницу. Вы можете четко видеть, что никаких дополнительных проверок нет, поэтому мы сможем воспользоваться этим.

параметр GET “page” загружается в переменную с именем “file”

Как вы можете видеть, мы воспользовались этой уязвимостью, чтобы получить файл “/etc/passwd” из операционной системы. Если вы не знали, файл “/etc/passwd” используется для хранения информации о каждой учетной записи пользователя в системе Linux.

Резюме

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

На этом все. Всем хорошего дня!

Цикл статей по Bug Bounty.