PortSwigger Web Academy - Path Traversal Labs
Сегодня разберем еще одну несложную для понимания веб-уязвимость, а именно Path Traversal.
Данная уязвимость опасна тем, что в случае отсутствия санитайзинга пользовательского ввода, веб-сервер, к примеру, вместо безобидной картинки отдаст злоумышленнику файлы из чувствительных директорий, что может привести к компрометации всего сервера! Чтобы было понятнее давайте разбираться на конкретных примеров, начнем с самого простого.
Lab: File path traversal, simple case
В описании к данной лабе дана подсказка, что уязвимость содержится в логике отображения картинки товара. Перед нами стоит задача вызвать уязвимость обхода каталога и достать с сервера чувствительный файла /etc/passwd (в Linux данный файл хранит информацию об учетных записях и ролях). Приступаем!
Давайте заглянем внутрь карточки и посмотрим в консоли, как выглядят запросы для получения картинок с карточек, а еще лучше расчехлить burp.
Обратим внимание, что URL в запросах формируются следующим образом:
.../image?filename=48.jpg
Сервер при формировании такого URL отдает нам картинку. А может он нам и /etc/passwd отдаст?? Попробуем...
Почему же мы не смогли получить доступ к файлу?? Все просто, мы не в той директории, попытаемся выбраться в корневую директорию и найти там файл по пути /etc/passwd. Как? Разберемся ниже...
Пути отображаются через обычный слэш, так что сервер линуксовый. Выбраться из текущей директории можно с помощью двух точек (..). Как в итоге должно выглядеть продолжение нашего URL - ../image?filename= ?? Будем добавлять ../ - пока не получим доступ к файлу выберемся в корневую директорию.
На этом задача, поставленная в лабе, выполнена! Подведем итог.
Итог
На примере данной лабы продемонстрирована уязвимость Path Traversal. Из-за недостаточной обработки и санитайзинга пользовательского ввода(отправляемых запросов) сервер вместе с безобидными картинками для карточек товаров при нехитрых манипуляциях с радостью отдает нам чувствительные системные файлы!