
JSON Web Token Хак-инструментарий
Набор инструментов для взлома JSON Web Token
Высокопроизводительный инструментарий для тестирования, анализа и атак на JSON Web Token.
cargo install jwt-hack
brew install jwt-hack
sudo snap install jwt-hack
git clone https://github.com/hahwul/jwt-hack
cd jwt-hack
cargo install --path .
docker pull ghcr.io/hahwul/jwt-hack:latest
docker pull hahwul/jwt-hack:v2.6.0
Вы можете декодировать как обычные, так и сжатые с помощью DEFLATE JWT. Инструмент автоматически обнаружит и распакует сжатые токены.
jwt-hack decode eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.CHANGED
jwt-hack decode COMPRESSED_JWT_TOKEN
Декодируйте токены JWE (JSON Web Encryption) для анализа их структуры. Инструмент автоматически определяет формат JWE (5 частей) и отображает детали шифрования.
# Декодирование структуры JWE-токена
jwt-hack decode eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZHVtbXlfaXZfMTIzNDU2.eyJ0ZXN0IjoiandlIn0.ZHVtbXlfdGFn
# Показывает заголовок JWE, зашифрованный ключ, IV, шифротекст и тег аутентификации
jwt-hack encode '{"sub":"1234"}' --secret=your-secret
Вы можете использовать опцию --compress для применения DEFLATE-сжатия к payload JWT.
jwt-hack encode '{"sub":"1234"}' --secret=your-secret --compress
# С закрытым ключом
ssh-keygen -t rsa -b 4096 -E SHA256 -m PEM -P "" -f RS256.key
jwt-hack encode '{"a":"z"}' --private-key RS256.key --algorithm=RS256
Создавайте токены JWE (JSON Web Encryption) для тестирования сценариев с зашифрованными JWT.
# Базовое кодирование JWE
jwt-hack encode '{"sub":"1234", "data":"encrypted"}' --jwe --secret=your-secret
# JWE-токены зашифрованы и могут быть расшифрованы только с помощью соответствующего ключа
jwt-hack encode '{"sensitive":"data"}' --jwe
Проверяет, действительна ли подпись JWT, с помощью предоставленного секрета или ключа.
# С секретом (HMAC-алгоритмы: HS256, HS384, HS512)
jwt-hack verify YOUR_JWT_TOKEN_HERE --secret=your-256-bit-secret
# С закрытым ключом (для асимметричных алгоритмов: RS256, ES256, EdDSA)
jwt-hack verify YOUR_JWT_TOKEN_HERE --private-key path/to/your/RS256_private.key
Атаки по словарю и полным перебором также поддерживают JWT, сжатые с помощью DEFLATE.
# Атака по словарю
jwt-hack crack -w wordlist.txt JWT_TOKEN
jwt-hack crack -w wordlist.txt COMPRESSED_JWT_TOKEN
# Атака полным перебором
jwt-hack crack -m brute JWT_TOKEN --max=4
jwt-hack crack -m brute COMPRESSED_JWT_TOKEN --max=4
jwt-hack payload JWT_TOKEN --jwk-attack evil.com --jwk-trust trusted.com
Автоматическое сканирование JWT-токенов на распространённые проблемы безопасности и уязвимости.
# Полное сканирование, включая обнаружение слабых секретов и генерацию payload
jwt-hack scan JWT_TOKEN
# Пропустить взлом секрета для более быстрых результатов
jwt-hack scan JWT_TOKEN --skip-crack
# Пропустить генерацию payload
jwt-hack scan JWT_TOKEN --skip-payloads
# Использовать пользовательский словарь для обнаружения слабых секретов
jwt-hack scan JWT_TOKEN -w custom_wordlist.txt
# Ограничить количество попыток проверки секрета
jwt-hack scan JWT_TOKEN --max-crack-attempts 50
Команда сканирования проверяет:
Запустите локальный REST API для автоматизации и интеграций. Для требования аутентификации используйте --api-key и включайте X-API-KEY в запросы.
# Запуск на localhost:3000 с защитой через API-ключ
jwt-hack server --api-key your-api-key
# Пример запроса (обязательно включать X-API-KEY, если задан --api-key)
curl -s http://127.0.0.1:3000/health -H 'X-API-KEY: your-api-key'
jwt-hack может работать как MCP-сервер, позволяя ИИ-моделям взаимодействовать с функциональностью JWT через стандартизированный протокол.
# Запуск MCP-сервера (обмен данными через stdio)
jwt-hack mcp
MCP-сервер предоставляет следующие инструменты:
MCP-сервер предназначен для использования ИИ-моделями и MCP-клиентами. Каждый инструмент принимает JSON-параметры и возвращает структурированные ответы.
Инструмент Decode:
{
"name": "decode",
"arguments": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
Инструмент Encode:
{
"name": "encode",
"arguments": {
"json": "{\"sub\":\"1234\",\"name\":\"test\"}",
"secret": "mysecret",
"algorithm": "HS256"
}
}
Вы можете подключить MCP-сервер jwt-hack к популярным MCP-совместимым клиентам. Убедитесь, что бинарный файл jwt-hack находится в вашей системе и доступен клиенту.
VSCode
{
"servers": {
"jwt-hack": {
"type": "stdio",
"command": "jwt-hack",
"args": [
"mcp"
]
}
},
"inputs": []
}
Claude Desktop
{
"mcpServers": {
"jwt-hack": {
"command": "jwt-hack",
"args": ["mcp"],
"env": {}
}
}
}
| Алгоритм | Описание |
|---|---|
| A128GCM | AES-GCM с использованием 128-битного ключа |
| A256GCM | AES-GCM с использованием 256-битного ключа |
| Алгоритм | Описание |
|---|---|
| dir | Прямое использование общего симметричного ключа |
Поддержка DEFLATE-сжатия Инструментарий
jwt-hackподдерживает DEFLATE-сжатие для JWT.
- Используйте опцию
--compressсencodeдля генерации сжатых JWT.- Режимы
decodeиcrackавтоматически обнаруживают и обрабатывают сжатые JWT.
Urx — это проект с открытым исходным кодом, созданный с ❤️ Если вы хотите внести вклад в этот проект, пожалуйста, ознакомьтесь с CONTRIBUTING.md и отправьте Pull-Request с вашим классным контентом.
| Режим | Описание | Поддержка |
|---|
| Encode | Кодировщик JWT/JWE | На основе секрета / На основе ключа / Алгоритм / Пользовательский заголовок / DEFLATE-сжатие / JWE |
| Decode | Декодер JWT/JWE | Алгоритм, проверка Issued At, DEFLATE-сжатие, структура JWE |
| Verify | Проверка JWT | На основе секрета / На основе ключа (для асимметричных алгоритмов) |
| Crack | Взломщик секрета | Атака по словарю / Полный перебор / DEFLATE-сжатие |
| Payload | Генератор атакующих payload для JWT | none / jku&x5u / alg_confusion (подписано через --public-key) / kid & claim injection / подмена claims / изменчивость подписи / JWE-пробы / x5c / cty |
| Scan | Сканер уязвимостей | Автоматизированные проверки безопасности на распространённые уязвимости JWT |
| Server | API-сервер | Запуск в режиме API-сервера (http://localhost:3000) |
| MCP | Сервер Model Context Protocol | Интеграция с ИИ-моделями через стандартизированный протокол |
| Инструмент | Описание | Параметры |
|---|
decode | Декодирование JWT-токенов | token (строка) |
encode | Кодирование JSON в JWT | json (строка), secret (необязательно), algorithm (по умолчанию: HS256), no_signature (логическое) |
verify | Проверка подписей JWT | token (строка), secret (необязательно), validate_exp (логическое) |
crack | Взлом JWT-токенов | token (строка), mode (dict/brute), chars (строка), max (число) |
payload | Генерация атакующих payload | token (строка), target (строка), jwk_attack (необязательно), jwk_protocol (по умолчанию: https), public_key (необязательно PEM/путь для подписанной alg-confusion) |
| Алгоритм | Описание | Тип |
|---|
| HS256 | HMAC с использованием SHA-256 | Симметричный |
| HS384 | HMAC с использованием SHA-384 | Симметричный |
| HS512 | HMAC с использованием SHA-512 | Симметричный |
| RS256 | RSASSA-PKCS1-v1_5 с использованием SHA-256 | Асимметричный |
| RS384 | RSASSA-PKCS1-v1_5 с использованием SHA-384 | Асимметричный |
| RS512 | RSASSA-PKCS1-v1_5 с использованием SHA-512 | Асимметричный |
| ES256 | ECDSA с использованием P-256 и SHA-256 | Асимметричный |
| ES384 | ECDSA с использованием P-384 и SHA-384 | Асимметричный |
| PS256 | RSASSA-PSS с использованием SHA-256 | Асимметричный |
| PS384 | RSASSA-PSS с использованием SHA-384 | Асимметричный |
| PS512 | RSASSA-PSS с использованием SHA-512 | Асимметричный |
| EdDSA | Алгоритм цифровой подписи на эллиптических кривых Эдвардса | Асимметричный |
| none | Без цифровой подписи | - |