O que jwt-oauth-token-attacks faz?
Playbook de ataques a tokens JWT e OAuth. Use ao validar confiança em tokens, algoritmos de assinatura, manipulação de chaves, abuso de claims, fluxos bearer e fraquezas de vinculação de contas OAuth.
Visão Geral
Este playbook cobre técnicas comuns de ataque a tokens JWT (JSON Web Tokens) e tokens OAuth (Open Authorization). É útil para:
- Validar a segurança de implementações de JWT
- Testar fluxos OAuth para vulnerabilidades de vinculação de contas
- Identificar erros de configuração em algoritmos de assinatura
- Detectar abuso de claims e manipulação de tokens
Ataques a JWT
Algoritmo de Assinatura None
Alguns servidores aceitam tokens com o algoritmo de assinatura definido como none, ignorando a verificação de assinatura.
Exemplo de token modificado:
{
"alg": "none",
"typ": "JWT"
}
Confusão de Algoritmo (RS256 para HS256)
Se o servidor espera uma chave pública (RS256) mas aceita HMAC (HS256), um atacante pode usar a chave pública como segredo para assinar tokens.
Comando para assinar com HS256 usando chave pública:
jwt_tool <token> -X a -k public_key.pem
Força Bruta de Chave Secreta
Use hashcat ou jwt_tool para quebrar chaves secretas fracas em tokens HMAC.
Exemplo com hashcat:
hashcat -a 0 -m 16500 jwt.txt wordlist.txt
Ataques a OAuth
CSRF em Redirect URI
Ao vincular contas, um atacante pode substituir o redirect_uri para roubar o código de autorização.
Cenário de ataque:
- A aplicação cliente registra
https://app.com/callback - Atacante modifica para
https://atacante.com/callback - Se o servidor não validar o redirect_uri, o código vaza para o atacante
Roubo de Token de Atualização
Tokens de atualização (refresh tokens) podem ser roubados se armazenados inseguramente ou se o servidor não os rotacionar.
Verificação:
- O servidor rotaciona refresh tokens após o uso?
- O refresh token é armazenado em local seguro (não em localStorage)?
Ferramentas Recomendadas
jwt_tool: Análise e manipulação de JWThashcat: Quebra de chaves secretasBurp Suite: Interceptação e modificação de fluxos OAuthPostman: Teste manual de fluxos