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

Path Traversal: Normpath Bypass

Обработчик использует os.path.normpath() до конкатенации, что не предотвращает выход за пределы директории.

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