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

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

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

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

Автор: Hack & Fix
Освоишь: RBACpolicy testsdeny-by-default
Легко+30 XP ~15 мин python
CWE-284 · A01:2021 Pro
Обложка: Access Control: Forced Browsing — открытая админ-панель Обложка: Access Control: Forced Browsing — открытая админ-панель
Задача
# Forced Browsing: административный раздел без проверки доступа ## Сценарий **CodeCart** — интернет-магазин электроники на Flask: каталог, корзина, профиль покупателя. Для сотрудников предусмотрен служебный раздел управления и системной статистики, но разработчик не стал выводить на него ссылки в навигации — и решил, что «невидимая» страница в защите не нуждается. Перед запуском рекламной кампании владелец площадки заказал внешний аудит: убедиться, что служебные страницы действительно недоступны посетителям. ## Цель 1. Не входя в систему, обратитесь напрямую к маршруту, типичному для административных разделов, и подтвердите, что сервер отдаёт страницу без проверки доступа. 2. Изучите подразделы найденного раздела и найдите страницу системной статистики. 3. Извлеките CTF-флаг, который отображается среди показателей статистики. ## Теория Forced Browsing (CWE-425) — обращение к страницам, которые не закрыты серверной проверкой, а лишь «спрятаны»: ссылки на них не публикуются в интерфейсе. Отсутствие ссылки не входит в модель угроз HTTP: адреса угадываются по типовым конвенциям имён административных разделов, собираются по реакциям сервера на серию запросов или всплывают в утечках — картах сайта, клиентских скриптах, документации. **Уязвимый паттерн:** ```python @app.route('/admin/dashboard') def admin_dashboard(): user = get_user() # посетитель читается, но не проверяется ``` Обработчик получает текущего пользователя лишь для передачи в шаблон и не отвергает запрос без сессии: нет ни проверки аутентификации, ни проверки роли. Любой, кто знает или угадал адрес, получает страницу целиком — вместе с конфиденциальными показателями. Класс проблемы — Broken Access Control (OWASP A01:2021): решение о допуске должно приниматься на сервере до выполнения логики обработчика, а не «отсутствием кнопки» в интерфейсе. ## Точка входа атаки `GET`-запросы к типовым административным маршрутам в корне приложения; вход в систему не требуется. * **Обычный пользователь (для сравнения поведения):** `demo` / `demo` * **Администратор:** `admin` / `???`

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

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

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

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

+60 XP
Python Pro
Exploit Fix
Обложка лабы: Access Control: Обход проверки через регистр URL Обложка лабы: Access Control: Обход проверки через регистр URL
Access

Access Control: Обход проверки через регистр URL

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

+90 XP
Python 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
Node.js Pro
Exploit Fix