Перейти к содержимому
← Каталог nodejs Command Injection

CSRF: Несанкционированное действие через поддельный запрос (Express)

Форма администратора не защищена CSRF-токеном. Заставь бота выполнить действие от имени admin.

mediumnodejsPro
Задача
# CSRF: атака межсайтовой подделки запроса ## Сценарий Перед вами интернет-магазин SecureShop на Express + Nunjucks. В панели администратора есть несколько привилегированных действий — список пользователей, удаление аккаунтов, активация специальной распродажи. Все они доступны только пользователю с ролью `admin`. Вы как обычный пользователь не имеете доступа к админ-панели, но в приложении предусмотрен функционал «Report to Admin» — пользователь может отправить ссылку администратору, и тот её посмотрит. Ваша задача — воспользоваться этим, чтобы заставить браузер администратора (бота, периодически проверяющего отчёты) выполнить от имени администратора одно из привилегированных действий, которое вы сами выполнить не можете. Это классическая атака **Cross-Site Request Forgery (CSRF)** — её работоспособность зависит от того, проверяет ли уязвимый обработчик не только «кто пользователь», но и «откуда пришёл запрос». ## Цели 1. Авторизуйтесь как `demo` / `demo` и изучите панель администратора в той части, которая видна неадминистратору (через прямые ссылки или анализ HTML). 2. Сравните защищённые и незащищённые привилегированные действия в админ-панели — какие из них требуют дополнительного «доказательства намерения», а какие нет. 3. Сформируйте payload для атаки на незащищённое действие и доставьте его администратору через предусмотренный для этого механизм отчётов. 4. После выполнения действия завершите цепочку — извлеките CTF-флаг через изменения в каталоге, сделанные от имени администратора. ## Данные | Параметр | Значение | |----------|----------| | Обычный пользователь | `demo` / `demo` | | Бот-администратор | проверяет ссылки, отправленные через форму отчётов | ## Что такое CSRF (для контекста) **Cross-Site Request Forgery** — класс атак, при которых злоумышленник заставляет браузер жертвы (обычно — авторизованного администратора) выполнить нежелательное действие на доверенном сайте. Сторонний сайт не имеет прямого доступа к cookie сессии жертвы, но может заставить её браузер отправить запрос — а браузер прикрепит cookie автоматически. Защита от CSRF строится на том, что сервер требует «второй фактор» — токен, который сторонний сайт получить не может.
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru