IDOR: Доступ к чужому счёту в Express
Эндпоинт просмотра счёта в Express + better-sqlite3 не проверяет владельца ресурса. Получи доступ к счёту администратора и извлеки флаг.
easynodejsPro
Задача
# IDOR: доступ к чужим счетам
## Сценарий
Перед вами интернет-магазин на Express + better-sqlite3. У каждого пользователя есть личные счета (invoices) — документы с информацией о покупках и платежах. Список счетов и страница деталей конкретного счёта доступны только авторизованным пользователям.
Авторизация на этих страницах реализована, но это лишь **аутентификация** — сервер проверяет, что пользователь вошёл в систему. **Авторизация конкретного ресурса** (то есть проверка «вправе ли именно этот пользователь смотреть именно этот счёт») реализована не везде. Эта пара ошибок — классическая Insecure Direct Object Reference, IDOR.
В системе есть административный пользователь, у которого среди обычных счетов есть один особый — содержащий CTF-флаг. Ваша задача — найти узкое место в проверке доступа и через IDOR прочитать счёт админа.
## Цели
1. Авторизуйтесь как `demo` / `demo` и изучите свой раздел счетов.
2. Проанализируйте структуру URL-адресов и подумайте, что определяет, какие именно счета вам показывают.
3. Используйте найденный изъян, чтобы получить доступ к счетам, которые вам не принадлежат.
4. Найдите среди этих счетов CTF-флаг.
## Данные
| Параметр | Значение |
|----------|----------|
| Обычный пользователь | `demo` / `demo` |