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

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

IDOR: Вертикальная эскалация привилегий

Админ-эндпоинты проверяют аутентификацию, но не роль пользователя.

Автор: Hack & Fix
Освоишь: object-level authUUID вместо intownership check
Легко+30 XP ~15 мин python
CWE-639 · A01:2021 Pro
Обложка: IDOR: Вертикальная эскалация привилегий Обложка: IDOR: Вертикальная эскалация привилегий
Задача
# Вертикальная эскалация привилегий (IDOR) ## Сценарий Вы — безопасник на аутсорсе у «ЛампаМаркет» — магазина винтажной электроники и лампового декора. Во внутреннем портале магазина есть административный раздел: список пользователей, статистика продаж, управление учётными записями. Разработчик уверяет, что раздел закрыт «на замок», но уволившийся стажёр настаивал, что заходил туда под своей обычной учёткой. Проверить это попросили до встречи с инвесторами. ## Цель 1. Войдите как обычный покупатель и осмотрите функционал, доступный вам в интерфейсе. 2. Проверьте, действительно ли все административные страницы сверяют роль вошедшего пользователя. 3. Через административную страницу со сводной информацией добудьте флаг, не имея роли администратора. ## Теория Вертикальная эскалация привилегий — случай, когда пользователь с низкими правами добирается до функций с высокими. Контроль доступа состоит из двух независимых слоёв: аутентификация отвечает «вы вошли», авторизация — «вам можно эту операцию». Обработчик, проверяющий только первый слой, пропустит любого вошедшего. Скрытость ссылок в интерфейсе защитой не является: закрытые адреса угадываются по стандартным конвенциям или находятся в клиентском коде страниц. **Уязвимый паттерн:** ```python user = get_user() if not user: return redirect('/login') # далее сразу бизнес-логика административной страницы ``` Между проверкой сессии и работой с данными нет сверки роли, поэтому страница выполнится для любой учётной записи. Учтите: одни административные разделы могут быть защищены правильно, другие — забыты; искать нужно именно забытый. ## Точка входа атаки Административный раздел портала: `GET /admin` и его подразделы (статистика, управление учётными записями). Для входа используйте `POST /login` с полями `username` и `password`. * **Обычный покупатель:** `demo` / `demo`

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

другие лабы по этой уязвимости
Обложка лабы: IDOR: Доступ к чужому счёту Обложка лабы: IDOR: Доступ к чужому счёту
IDOR

IDOR: Доступ к чужому счёту

Эндпоинт просмотра счёта не проверяет владельца. Получи данные чужого счёта.

+30 XP
Python Pro
Exploit Fix
Обложка лабы: IDOR: Mass Assignment — эскалация через JSON Обложка лабы: IDOR: Mass Assignment — эскалация через JSON
IDOR

IDOR: Mass Assignment — эскалация через JSON

API-эндпоинт обновления профиля принимает все JSON-поля, включая role.

+60 XP
Python Pro
Exploit Fix
Обложка лабы: IDOR: Перебор заказов по последовательным ID Обложка лабы: IDOR: Перебор заказов по последовательным ID
IDOR

IDOR: Перебор заказов по последовательным ID

Заказы используют последовательные целочисленные ID без проверки владельца.

+60 XP
Python Pro
Exploit Fix
Обложка лабы: IDOR: Доступ к чужому счету Обложка лабы: IDOR: Доступ к чужому счету
IDOR

IDOR: Доступ к чужому счету

Эндпоинт просмотра счета не проверяет владельца. Получи флаг из счета другого пользователя.

+30 XP
Go Pro
Exploit Fix