← Каталог / nodejs / IDOR Админ-эндпоинты Express проверяют наличие сессии, но не роль пользователя. Любой залогиненный demo-пользователь может открыть /admin/stats и забрать флаг.
easynodejsPro
Задача
# Вертикальная эскалация привилегий (Broken Access Control)
## Сценарий
Перед вами интернет-магазин SecureShop. В приложении есть административная панель с несколькими разделами — управление пользователями, статистика, действия над учётными записями. Эти страницы должны быть доступны только пользователям с ролью администратора, и **на первый взгляд** они закрыты для обычного пользователя.
В реальности же закрыт только один уровень контроля доступа — **аутентификация** (вошёл ли пользователь в систему). Второй, более важный для администраторских функций уровень — **авторизация** (имеет ли вошедший пользователь право на эту конкретную операцию) — реализован не везде. Это классическая вертикальная эскалация привилегий из категории Broken Access Control (OWASP A01:2021).
В одном из административных разделов виден CTF-флаг. Ваша задача — найти, какие именно административные эндпоинты не проверяют роль, и через них получить флаг под обычным пользователем.
## Цели
1. Авторизуйтесь как `demo` / `demo` и осмотрите доступный для обычного пользователя функционал.
2. Эмпирически проверьте, какие административные пути приложения отвергают обычного пользователя, а какие — нет.
3. Через найденный канал доберитесь до раздела с CTF-флагом и получите его значение.
## Данные
| Параметр | Значение |
|----------|----------|
| Обычный пользователь | `demo` / `demo` |
Похожие лабораторные
Ещё лабораторные по этому типу уязвимости
Эндпоинт просмотра счёта в Express + better-sqlite3 не проверяет владельца ресурса. Получи доступ к счёту администратора и извлеки флаг.
nodejseasyPro
Exploit Fix
Заказы интернет-магазина идентифицируются UUID v1 (timestamp + MAC + clock_seq). Все заказы созданы внутри одного процесса, поэтому делят те же node/clock_seq биты — отличаются только по timestamp. Эндпоинт /order/:uuid не проверяет владельца, и атакующий, имея один свой UUID, угадывает UUID соседних заказов и получает чужие данные, включая CTF-флаг.
nodejshardPro
Exploit Fix
Эндпоинт просмотра счета не проверяет владельца. Получи флаг из счета другого пользователя.
golangeasyPro
Exploit Fix
Заказы используют последовательные целочисленные ID. Эндпоинт /order/{id} не проверяет владельца — можно перебрать чужие заказы и найти флаг.
golangeasyPro
Exploit Fix
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы —
support@hackandfix.ru