TGViewer
Standoff Bug Bounty Tips Standoff Bug Bounty Tips @standoff_bb_tips · 1.66K subscribers
Post #152 4.04K
Эксплуатация JSON web tokens: от теории к практике 🚀

По своей структуре JWT состоит из трёх частей — заголовка, пэйлоада и подписи:

➡️Заголовок (header) передает информацию о типе токена и используемом криптографическом алгоритме.

➡️Пэйлоад (payload) передает содержащиеся в токене так называемые утверждения (claims), которые делятся на три типа:

▪️Стандартные — данные о токене (предназначение, издатель, срок действия).
▪️Пользовательские — данные пользователя токена (имя, электронный адрес, номер телефона).
▪️Нестандартные — специфические поля, необходимые для конкретных приложений.

➡️Подпись (signature) гарантирует, что ни заголовок, ни пэйлоад не были изменены.

Большинство уязвимостей JWT возникают из-за неправильной настройки и некорректной проверки входных данных в процессе реализации. Разберем подробнее:

1️⃣ alg: none (отсутствие подписи) — если сервер принимает алгоритм none, можно отправить unsigned-токен с изменёнными claims и пройти аутентификацию.

2️⃣ Отсутствие проверки подписи — пропуск валидации подписи позволяет любому модифицированному токену считаться валидным.

3⃣ Algorithm confusion (путаница алгоритмов) — смена alg (например, с RS256 на HS256) даёт возможность использовать публичный ключ как HMAC-секрет и подделать подпись.

4⃣ Подмена JWK — динамическая загрузка публичных ключей (jwks.json) может быть использована для подмены ключа и принятия злонамеренно подписанных токенов.

5⃣ Инъекция через kid — небезопасная обработка поля kid может привести к инъекции пути/URL или выбору неподходящего ключа для проверки.

{
"alg": "RS256",
"kid": "example-key' OR UNION SELECT 'users'; --"
}


6⃣ Брутфорс слабых секретов — при использовании HMAC слабые или общие секреты можно подобрать перебором.

$ john --wordlist=/path/to/wordlist.txt jwt.txt


7⃣ Захардкоженные ключи — секреты, обнаруженные в исходниках, позволяют создать валидные токены.

Полезные инструменты и ресурсы:

🔗Introduction to JSON Web Tokens
🔗Exploiting JWT vulnerabilities: A complete guide
🔗 The JSON Web Token Toolkit v2
🔗BurpSuite JWT Editor
🔗PortSwigger Web Security Academy: JWT attacks
  • 👍 12
  • ❤ 2
  • 👀 2
More from @standoff_bb_tips
  1. Oct 11, 2026Что скрывается в имени HTML-тега? Может быть, JavaScript? Gareth Heyes из PortSwigger пока…
  2. Oct 4, 2026Хочешь прокачать своего багбаунти-агента ❓ Обрати внимание на Model-Context-Protocol (MCP)…
  3. Oct 3, 2026Эксплуатация багов, связанных с ошибками в бизнес-логике 🤔 Логические баги — это когда ко…
  4. Sep 7, 2026Post #255
  5. Sep 5, 2026Мы накидали 6 разных вариантов атак для простого GET-запроса на редактирование профиля ⤵️…
  6. Aug 15, 2026Stored XSS через картинку: проверь Content-Type override 😵‍💫 Иногда загрузка изображений…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →