SSRF: Fetch Avatar
Обработчик загрузки аватара делает HTTP-запрос по пользовательскому URL без валидации — доступ к внутренним сервисам.
easypythonPro
Задача
# SSRF: загрузка аватара по URL
## Сценарий
Перед вами Flask-приложение интернет-магазина SecureShop. На странице профиля есть удобная функция «Fetch Avatar» — пользователь вводит ссылку на изображение, сервер скачивает его и сохраняет как аватар. Эта функция, как и любой механизм, заставляющий сервер делать HTTP-запросы по управляемому пользователем URL, представляет собой потенциальный канал для **Server-Side Request Forgery (SSRF)**.
В реализации обработчика отсутствует валидация целевого адреса: сервер обращается к любому URL, который ему передал клиент. На том же сервере живёт внутренний административный сервис, доступный только изнутри сетевого периметра приложения. Ваша задача — использовать функцию загрузки аватара, чтобы дотянуться до этого сервиса и получить флаг.
## Цели
1. Авторизуйтесь как `demo` / `demo` и найдите на странице профиля функцию «Fetch Avatar».
2. Изучите внутреннюю структуру приложения и определите, какие сервисы могут существовать только на стороне сервера, недоступные напрямую снаружи.
3. Используйте функцию загрузки аватара, чтобы заставить сервер обратиться к одному из таких внутренних сервисов и вернуть его ответ обратно в HTTP-ответ.
4. Извлеките CTF-флаг из полученного ответа.
## Данные
| Параметр | Значение |
|----------|----------|
| Обычный пользователь | `demo` / `demo` |