IDOR: Вертикальная эскалация привилегий в Express
Админ-эндпоинты Express проверяют наличие сессии, но не роль пользователя. Любой залогиненный demo-пользователь может открыть /admin/stats и забрать флаг.
easynodejsPro
Задача
# Вертикальная эскалация привилегий (Broken Access Control)
## Сценарий
Перед вами интернет-магазин SecureShop. В приложении есть административная панель с несколькими разделами — управление пользователями, статистика, действия над учётными записями. Эти страницы должны быть доступны только пользователям с ролью администратора, и **на первый взгляд** они закрыты для обычного пользователя.
В реальности же закрыт только один уровень контроля доступа — **аутентификация** (вошёл ли пользователь в систему). Второй, более важный для администраторских функций уровень — **авторизация** (имеет ли вошедший пользователь право на эту конкретную операцию) — реализован не везде. Это классическая вертикальная эскалация привилегий из категории Broken Access Control (OWASP A01:2021).
В одном из административных разделов виден CTF-флаг. Ваша задача — найти, какие именно административные эндпоинты не проверяют роль, и через них получить флаг под обычным пользователем.
## Цели
1. Авторизуйтесь как `demo` / `demo` и осмотрите доступный для обычного пользователя функционал.
2. Эмпирически проверьте, какие административные пути приложения отвергают обычного пользователя, а какие — нет.
3. Через найденный канал доберитесь до раздела с CTF-флагом и получите его значение.
## Данные
| Параметр | Значение |
|----------|----------|
| Обычный пользователь | `demo` / `demo` |