Information Disclosure: Flask Debug Mode
Flask запущен с debug=True. Через Werkzeug debugger можно получить переменные окружения.
easypythonPro
Задача
# Утечка через debug-режим Flask
## Сценарий
Перед вами Flask-приложение — интернет-магазин IT-мерча. Приложение развёрнуто на боевом стенде, но при разработке кто-то оставил включённым режим отладки фреймворка. Когда в приложении возникает необработанное исключение, вместо стандартной страницы 500 пользователь видит детальную диагностическую информацию.
Цель атаки — заставить приложение упасть с необработанной ошибкой, изучить, что показывает диагностический режим, и через возможности этого режима извлечь секретные данные процесса.
## Цели
1. Найдите в приложении функционал, на котором приложение падает с необработанной ошибкой.
2. Изучите, что отдаётся в ответе вместо стандартной страницы ошибки.
3. Извлеките CTF-флаг из секретных данных серверного процесса.
## Данные
| Параметр | Значение |
|----------|----------|
| Обычный пользователь | `demo` / `demo` |
> Подсказка по разведке: внимательно осмотрите страницы и API-эндпоинты, доступные после авторизации, и попробуйте подавать им необычные значения параметров. Один из endpoint'ов содержит ошибку в работе с БД, проявляющуюся при определённых входных данных.