Перейти к содержимому

Поиск по платформе

Access Control: Forced Browsing — скрытая админ-панель

Административные страницы доступны без аутентификации. Перейдите напрямую и получите конфиденциальные данные.

Автор: Hack & Fix
Освоишь: RBACpolicy testsdeny-by-default
Легко+30 XP ~15 мин nodejs
CWE-284 · A01:2021 Pro
Обложка: Access Control: Forced Browsing — скрытая админ-панель Обложка: Access Control: Forced Browsing — скрытая админ-панель
Задача
# Forced Browsing: доступ к скрытой админ-панели ## Сценарий Вы аудируете **Kryptoria** — интернет-магазин сувенирной продукции для CTF-команд, построенный на Express. Разработчик убрал ссылки на служебные страницы из меню покупателей и уверен, что раздел, которого «не видно», защищён. В поддержку прилетела жалоба: посторонний без аккаунта якобы видел системную статистику магазина. Вам поручено проверить, так ли это. ## Цель 1. Не входя в систему, доберитесь до административного раздела магазина напрямую по адресу. 2. Найдите подраздел, где выводится системная статистика. 3. Извлеките CTF-флаг из показателей этой статистики. ## Теория Forced Browsing (CWE-425) — частный случай Broken Access Control (OWASP A01:2021): доступ к защищённому объекту получают прямым обращением к его адресу, минуя путь, предусмотренный интерфейсом. Разработчик полагается на незаметность страницы — раз ссылки в меню нет, никто не догадается. Но адреса административных разделов почти всегда предсказуемы по типовым конвенциям, и единственным настоящим барьером может быть только серверная проверка доступа. **Уязвимый паттерн:** ```javascript // Обработчик админ-страницы без проверки доступа: app.get('/admin/dashboard', (req, res) => { const user = getUser(req); // читается только для отрисовки UI // ...рендер страницы со служебными данными... }); ``` Пользователя из сессии обработчик читает лишь для шапки страницы, но аутентификацию и роль никто не проверяет: код выполняется для любого запроса и отдаёт служебную статистику всем желающим. ## Точка входа атаки `GET /admin/dashboard` — страница системной статистики, прямое обращение без входа. Для сравнения, обычный вход в приложение — `POST /login` с полями `username` и `password`. * **Обычный пользователь:** `demo` / `demo`

Похожие лабораторные (4)

другие лабы по этой уязвимости
Обложка лабы: Access Control: обход URL-проверки через вариации пути Обложка лабы: Access Control: обход URL-проверки через вариации пути
Access

Access Control: обход URL-проверки через вариации пути

Middleware проверяет доступ к /admin по точному совпадению префикса. Обойдите проверку, изменив регистр символов.

+30 XP
Node.js Pro
Exploit Fix
Обложка лабы: Access Control: Горизонтальная эскалация через API в Express Обложка лабы: Access Control: Горизонтальная эскалация через API в Express
Access

Access Control: Горизонтальная эскалация через API в Express

API-эндпоинт /api/users/:user_id/notes не проверяет владельца. Получите заметки администратора.

+60 XP
Node.js Pro
Exploit Fix
Обложка лабы: Forced Browsing: доступ к скрытому эндпоинту экспорта Обложка лабы: Forced Browsing: доступ к скрытому эндпоинту экспорта
Access

Forced Browsing: доступ к скрытому эндпоинту экспорта

Административный эндпоинт /admin/export зарегистрирован без проверки роли — любой авторизованный пользователь может получить CSV-экспорт с конфиденциальными данными.

+30 XP
Go Pro
Exploit Fix
Обложка лабы: Access Control: Forced Browsing — открытая админ-панель Обложка лабы: Access Control: Forced Browsing — открытая админ-панель
Access

Access Control: Forced Browsing — открытая админ-панель

Административные страницы доступны без аутентификации. Перейдите напрямую и получите конфиденциальные данные.

+30 XP
Python Pro
Exploit Fix