Перейти к содержимому
← Каталог python Auth Bypass

JWT: None Algorithm Attack

Сервер принимает JWT с alg:none и доверяет роли из claims — подделайте токен для получения прав администратора.

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