← Каталог / nodejs / IDOR Заказы интернет-магазина идентифицируются UUID v1 (timestamp + MAC + clock_seq). Все заказы созданы внутри одного процесса, поэтому делят те же node/clock_seq биты — отличаются только по timestamp. Эндпоинт /order/:uuid не проверяет владельца, и атакующий, имея один свой UUID, угадывает UUID соседних заказов и получает чужие данные, включая CTF-флаг.
hardnodejsPro
Задача
# IDOR через предсказуемые ID заказов
## Сценарий
Перед вами Node.js/Express интернет-магазин, в котором у каждого пользователя есть история заказов. Страница деталей конкретного заказа доступна авторизованным пользователям и идентифицируется UUID-токеном в URL (`/order/<uuid>`).
В отличие от типичной IDOR-уязвимости с одним только отсутствием проверки доступа, в этой реализации соединились **два независимых дефекта**: предсказуемый формат идентификаторов (упрощает разведку) и отсутствие проверки владельца (делает разведку результативной). Любой из этих дефектов по отдельности уже плох, а вместе они дают практичный канал утечки чужих данных.
В одном из заказов в системе зашит CTF-флаг. Ваша задача — найти этот заказ через IDOR.
## Цели
1. Авторизуйтесь как обычный пользователь (`demo` / `demo`) и изучите страницу профиля с историей своих заказов.
2. Проанализируйте формат UUID и сравните разные идентификаторы — какие части совпадают, а какие отличаются.
3. Используя обнаруженные слабости, найдите заказ, который вам не принадлежит, но содержит CTF-флаг.
## Данные
| Параметр | Значение |
|----------|----------|
| Пользователь | `demo` / `demo` |
Похожие лабораторные
Ещё лабораторные по этому типу уязвимости
Эндпоинт просмотра счёта в Express + better-sqlite3 не проверяет владельца ресурса. Получи доступ к счёту администратора и извлеки флаг.
nodejseasyPro
Exploit Fix
Админ-эндпоинты Express проверяют наличие сессии, но не роль пользователя. Любой залогиненный demo-пользователь может открыть /admin/stats и забрать флаг.
nodejseasyPro
Exploit Fix
Эндпоинт просмотра счета не проверяет владельца. Получи флаг из счета другого пользователя.
golangeasyPro
Exploit Fix
Заказы используют последовательные целочисленные ID. Эндпоинт /order/{id} не проверяет владельца — можно перебрать чужие заказы и найти флаг.
golangeasyPro
Exploit Fix
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы —
support@hackandfix.ru