← Каталог / nodejs / CSRF JSON API /api/profile на Express принимает запросы без CSRF-токена и без проверки кастомного заголовка X-Requested-With. Смени пароль admin через cross-origin CSRF — затем войди и забери флаг.
mediumnodejsPro
Задача
# CSRF: атака на JSON API
## Сценарий
Перед вами интернет-магазин SecureShop. Команда разработки недавно мигрировала страницу настроек профиля с классических HTML-форм на современный JSON API: фронтенд отправляет POST-запросы с JSON-телом, бэкенд возвращает JSON-ответ. Разработчик уверен, что **новый API автоматически защищён от CSRF**, потому что HTML-формы не могут отправлять `application/json` напрямую. Это распространённое заблуждение, и ваша задача — продемонстрировать, в чём оно ошибочно.
В системе есть административная учётная запись с CTF-флагом, к которому имеет доступ только она. Используя CSRF-уязвимость в JSON API смены пароля, заставьте браузер админа сменить пароль на известное вам значение — и зайдите в админ-панель.
## Цели
1. Авторизуйтесь как `demo` / `demo` и изучите страницу настроек профиля. Откройте инструменты разработчика и посмотрите, как именно фронтенд общается с серверным API при сохранении изменений.
2. Найдите способ выполнить тот же запрос **с другого домена** — в обход «защиты», на которую полагается разработчик.
3. Доставьте подготовленную страницу-эксплойт администратору через предусмотренный для этого механизм отчётов.
4. После того как пароль администратора изменится, войдите от его имени и заберите CTF-флаг из админ-панели.
## Данные
| Параметр | Значение |
|----------|----------|
| Тестовый пользователь | `demo` / `demo` |
| Цель атаки | пользователь `admin` (изменение пароля через CSRF) |
Похожие лабораторные
Ещё лабораторные по этому типу уязвимости
Форма администратора не защищена CSRF-токеном. Заставь бота выполнить действие от имени admin.
nodejsmediumPro
Exploit Fix
Эндпоинт смены email реализован через GET. SameSite=Lax не защищает top-level navigation — измени email админа через CSRF и забери флаг из /api/admin/email.
nodejshardPro
Exploit Fix
Форма администратора не защищена CSRF-токеном. Заставь бота выполнить действие от имени admin.
golangeasyPro
Exploit Fix
Админ-эндпоинт активации распродажи не проверяет CSRF-токен. Заставь бота выполнить действие от имени admin.
phpeasyPro
Exploit Fix
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы —
support@hackandfix.ru