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

JWT: подбор слабого секрета и подделка admin-токена

Сервер подписывает JWT слабым секретом из словаря. Получив один валидный токен, атакующий за секунды подбирает секрет по словарю офлайн, подписывает новый токен с role=admin и забирает флаг.

mediumnodejsPro
Задача
# JWT: слабый секрет подписи ## Сценарий Перед вами Express-приложение интернет-магазина SecureShop на Node.js. Аутентификация построена на JWT-токенах — после входа сервер выдаёт клиенту подписанный токен, и дальнейшие запросы авторизуются по нему. В отличие от лабораторной с атакой на алгоритм подписи, здесь сервер корректно настраивает алгоритм и проверяет подпись «как положено». Уязвимость спрятана в другом месте — в качестве самого секрета подписи. Ваша задача — обнаружить эту слабость и использовать её для повышения привилегий до администратора, не зная пароля admin-аккаунта. ## Цели 1. Авторизуйтесь как `demo` / `demo` и изучите токен, который сервер сохраняет в cookie клиента. 2. Декодируйте структуру токена и определите, какой алгоритм используется для подписи и что лежит в полезной нагрузке. 3. Найдите способ создать токен, который сервер примет как валидный и который даст административные привилегии. 4. Откройте админ-панель и извлеките CTF-флаг. ## Данные | Параметр | Значение | |----------|----------| | Обычный пользователь | `demo` / `demo` | | Цель | `admin`-роль (пароль администратора неизвестен) |
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru