Перейти к содержимому
← Каталог python Path Traversal

Path Traversal: Базовый обход директорий

Классическая уязвимость Path Traversal через os.path.join() без проверки выхода за пределы базовой директории.

easypythonPro
Задача
# Path Traversal: чтение файлов за пределами разрешённой директории ## Сценарий Перед вами Flask-приложение интернет-магазина SecureShop. Команда разработки реализовала эндпоинт скачивания изображений товаров — клиент передаёт имя файла, сервер находит его в директории со статикой и отдаёт содержимое. Реализация такой функции выглядит безобидно, но требует строгой проверки: то, что сервер возьмёт из присланного клиентом «имени», должно гарантированно остаться внутри разрешённой публичной директории. В этой реализации проверка пропущена. Любая последовательность, выводящая интерпретатор пути за границы базовой директории, проходит беспрепятственно — и клиент получает доступ к файлам, которые сервер раздавать не собирался. В одной из рядом лежащих с публичной статикой папок лежит файл с CTF-флагом. Ваша задача — найти эндпоинт скачивания, обнаружить отсутствие проверки и через path-traversal-payload прочитать этот файл. ## Цели 1. Авторизуйтесь как `demo` / `demo` (для функции скачивания этой лабы аутентификация не критична, но в реальной разведке стоит пройти весь штатный путь). 2. Найдите эндпоинт скачивания файлов и эмпирически определите, как он строит путь и проверяет ли границы директории. 3. Сформируйте имя файла, которое выводит сервер за пределы публичной статики, и прочитайте файл с CTF-флагом. ## Данные | Параметр | Значение | |----------|----------| | Обычный пользователь | `demo` / `demo` |
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru