Как проверить атаки JWT?

Dec 27 2022
Привет всем в этом блоге. Я попытаюсь обобщить атаки JWT. У нас есть 3 основных важных момента, о которых мы поговорим: что такое JWT? - что такое атаки JWT? - сценарии атак JWT. Давайте начнем! - Что такое JWT? Веб-токены JSON (JWT) — это стандартизированный формат для отправки криптографически подписанных данных JSON между системами. В отличие от классических токенов сеанса, все данные, необходимые серверу, хранятся на стороне клиента в самом JWT.

Привет всем, в этом блоге я попытаюсь обобщить атаки JWT.

У нас есть 3 основных важных момента, о которых мы поговорим
. Что такое JWT?
- Что такое атаки JWT?
- Сценарии об атаках JWT

Давайте начнем !!

- Что такое JWT ?

Веб-токены JSON (JWT) — это стандартизированный формат для отправки криптографически подписанных данных JSON между системами. В отличие от классических токенов сеанса, все данные, которые нужны серверу, хранятся на стороне клиента в самом JWT.
JWT состоит из 3 частей: заголовка , полезной нагрузки и подписи . Каждый из них разделен точкой.xxxxx.yyyyy.zzzzz

Части заголовка и полезной нагрузки JWT — это просто объекты JSON с кодировкой base64url . В большинстве случаев данные заголовка и полезной нагрузки могут быть легко прочитаны или изменены любым, у кого есть доступ к токену. Поэтому безопасность любого механизма на основе JWT сильно зависит от криптографической подписи .
Чтобы создать часть подписи, вы должны взять закодированный заголовок , закодированную полезную нагрузку , секрет , алгоритм, указанный в заголовке , и подписать это .

- Что такое атаки JWT?

В атаках JWT пользователь отправляет модифицированные JWT на сервер для достижения злонамеренной цели.

- Сценарии об атаках JWT

Подводя итог, у нас есть одна цель — поиграть с подписью. мы можем играть с подписью, играя с содержимым подписи (полезная нагрузка — «alg» заголовка — заголовок — секрет — подписать все упомянутое). у нас есть 7 сценариев в этом блоге, и я буду использовать расширение JWT Editor, чтобы узнать больше об этом здесь

  • Первый сценарий: (играть только с полезной нагрузкой)
изображение для первого сценария
  • второй сценарий: (поиграйте с полезной нагрузкой и «alg»)

{
    "alg": "none",
    "typ": "JWT"
}

Протестируйте секретные ключи грубой силы с помощью hashcat, затем используйте выходные данные и закодируйте их, нажмите « Новый симметричный ключ» и замените сгенерированное значение для kсвойства секретом в кодировке Base64.

hashcat -a 0 -m 16500 <jwt> <wordlist>

Тест на внедрение самоподписанных JWT с помощью jwkпараметра, нажав « Новый ключ RSA и сгенерировать», jwkа затем атаковать с помощью встроенного JWK.

  • Пятый сценарий: (играть с заголовком через внешний сервер)

{
    "keys": [

    ]
}

  • Шестой сценарий:
  • Седьмой сценарий:

Ресурсы