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

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

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

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

Автор: Hack & Fix
Освоишь: object-level authUUID вместо intownership check
Средне+60 XP ~30 мин python
CWE-639 · A01:2021 Pro
Обложка: IDOR: Перебор заказов по последовательным ID Обложка: IDOR: Перебор заказов по последовательным ID
Задача
# IDOR (чужие заказы по предсказуемым идентификаторам) ## Сценарий Вы — приглашённый аудитор магазина «ПиксельМаркет» — небольшой площадки, торгующей цифровым арт-мерчем и гаджетами. Каждая покупка попадает в историю заказов, а страница отдельного заказа открывается по ссылке из профиля. Служба доставки пожаловалась клиенту, что по ссылке с «изменённым на единицу» номером открылась чужая накладная, и магазин попросил разобраться, системное ли это. ## Цель 1. Войдите как обычный покупатель и изучите ссылки на свои заказы в профиле. 2. Определите формат идентификатора заказа и проверьте, сверяет ли сервер владельца при открытии. 3. Найдите чужой заказ с секретной позицией и получите флаг с его страницы. ## Теория IDOR (Insecure Direct Object Reference) возникает, когда сервер выбирает объект по идентификатору из запроса, не проверяя, что обратившийся — владелец объекта. Проверка аутентификации («вы вошли») не заменяет авторизации на объект («это ваш заказ»). Если идентификаторы к тому же предсказуемы — например, выдаются подряд, — перебор соседних значений превращается в массовое чтение чужих данных. **Уязвимый паттерн:** ```python row = db.execute( 'SELECT id, user_id, product_name, price, created_at FROM orders WHERE id=?', (id,) ).fetchone() ``` Условие выборки содержит только номер заказа: кто обратился, серверу безразлично. Достаточно подставить другой номер в адрес — и откроется чужая покупка. ## Точка входа атаки `GET /order/<id>` — номер заказа передаётся сегментом пути URL. Для входа используйте `POST /login` с полями `username` и `password`. * **Обычный покупатель:** `demo` / `demo`

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

другие лабы по этой уязвимости
Обложка лабы: IDOR: Mass Assignment — эскалация через JSON Обложка лабы: IDOR: Mass Assignment — эскалация через JSON
IDOR

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

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

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

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

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

+30 XP
Python Pro
Exploit Fix
Обложка лабы: IDOR: Вертикальная эскалация привилегий Обложка лабы: IDOR: Вертикальная эскалация привилегий
IDOR

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

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

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

IDOR: Mass Assignment — эскалация привилегий через профиль

Эндпоинт обновления профиля принимает JSON и записывает все поля, включая role. Отправь {"role":"admin"} и получи доступ к админ-панели с флагом.

+60 XP
Go Pro
Exploit Fix