Перейти к содержимому
← Каталог php IDOR

Vertical IDOR: Доступ к админ-панели без проверки роли

Admin-эндпоинты /admin/stats и /admin/users/delete защищены только аутентификацией, но не авторизацией. Обычный пользователь может выполнять действия администратора.

hardphpPro
Задача
# Vertical IDOR: Доступ к админ-панели без проверки роли ## Сценарий Перед вами интернет-магазин SecureShop. В приложении есть административная панель с несколькими разделами — управление пользователями, статистика магазина, действия над учётными записями. Эти страницы должны быть доступны только пользователям с ролью администратора, и **на первый взгляд** они закрыты для обычного пользователя — никаких ссылок на админку в навигации обычного аккаунта нет. В реальности же закрыт только один уровень контроля доступа — **аутентификация** (вошёл ли пользователь в систему). Второй, более важный для администраторских функций уровень — **авторизация** (имеет ли вошедший пользователь право на эту конкретную операцию) — реализован не везде. Это классическая вертикальная эскалация привилегий из категории Broken Access Control (OWASP A01:2021, CWE-862 Missing Authorization). Разработчик добавил проверку `if ($user === null)` в каждый административный обработчик и посчитал, что этого достаточно. Сервер доверяет факту наличия валидной сессии и не проверяет роль пользователя дальше. Это типовая ошибка: «обычные пользователи не знают URL администратора, значит, они туда не попадут» — Security through Obscurity, которая не является защитой. В одном из административных разделов отображается секретный admin-токен — CTF-флаг. Ваша задача — найти, какие именно административные эндпоинты не проверяют роль, и через них получить флаг под учётной записью обычного пользователя. ## Цели 1. Авторизуйтесь как `demo` / `demo` и осмотрите доступный для обычного пользователя функционал. 2. Эмпирически проверьте, какие административные пути приложения отвергают обычного пользователя, а какие — нет. Конвенциональные пути для админки: `/admin`, `/dashboard`, `/manage`, или просто перебор по типичным шаблонам. 3. Через найденный канал доберитесь до раздела с CTF-флагом и получите его значение. 4. Дополнительно: продемонстрируйте, что обычный пользователь может выполнять не только чтение, но и изменяющие операции администратора. ## Данные | Параметр | Значение | |----------|----------| | Обычный пользователь | `demo` / `demo` | | Тип уязвимости | Vertical IDOR / Broken Access Control | | Класс OWASP | A01:2021 Broken Access Control | | CWE | CWE-862 Missing Authorization |
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru