testing-oauth2-implementation-flaws
Ajuda seu agente a testar a segurança do sistema de login OAuth 2.0. Ele procura por falhas que podem permitir que invasores roubem contas ou acessem informações indevidas. Importante para proteger sistemas de login.
O que ela faz
Esta ferramenta verifica se sistemas que usam OAuth 2.0 e OpenID Connect (métodos comuns de login) têm falhas de segurança. Ela procura por maneiras de roubar informações de login ou obter acesso indevido a contas.
Quando usar
- ✓Ao testar a segurança de sistemas de login que usam OAuth 2.0 ou OpenID Connect.
- ✓Quando você suspeita que o processo de login pode ser enganado para dar acesso a quem não deveria.
- ✓Para verificar se as URLs de redirecionamento após o login estão sendo validadas corretamente.
Exemplo do que pedir para a IA
“Verifique a segurança do sistema de login da aplicação X usando OAuth 2.0.”
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 simula diferentes tipos de ataques, como tentar redirecionar o usuário para um site malicioso ou roubar o código de acesso. Ela usa ferramentas como Burp Suite para analisar o tráfego de rede e identificar vulnerabilidades.
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-oauth2-implementation-flawsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-oauth2-implementation-flaws/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 Falhas na Implementação do OAuth2
Quando Usar
- Avaliar o fluxo de código de autorização do OAuth 2.0 para fraquezas na validação de URI de redirecionamento
- Testar aplicações cliente OAuth para proteção CSRF (uso do parâmetro
state) e aplicação de PKCE - Avaliar o armazenamento, transmissão e gerenciamento do ciclo de vida de tokens em implementações OAuth
- Testar escalonamento de escopo onde clientes solicitam mais permissões do que o autorizado
- Avaliar implementações OpenID Connect para validação de ID token e uso de
nonce
Não use sem autorização por escrito. Testes OAuth podem resultar em roubo de token ou acesso não autorizado.
Pré-requisitos
- Autorização por escrito especificando o provedor OAuth e as aplicações cliente no escopo
- Cliente OAuth de teste registrado com o servidor de autorização
- Burp Suite Professional para interceptar redirecionamentos OAuth e fluxos de token
- Python 3.10+ com as bibliotecas
requestseoauthlib - Ferramentas de desenvolvedor do navegador para observar cadeias de redirecionamento OAuth
- Conhecimento dos tipos de concessão OAuth 2.0 em uso (código de autorização, implícito, credenciais de cliente)
Fluxo de Trabalho
Etapa 1: Reconhecimento do Fluxo OAuth
import requests
import urllib.parse
import re
import hashlib
import base64
import secrets
AUTH_SERVER = "https://auth.example.com"
CLIENT_ID = "test-client-id"
REDIRECT_URI = "https://app.example.com/callback"
SCOPE = "openid profile email"
# Discover OAuth endpoints
well_known = requests.get(f"{AUTH_SERVER}/.well-known/openid-configuration")
if well_known.status_code == 200:
config = well_known.json()
print("OAuth/OIDC Configuration:")
print(f" Authorization: {config.get('authorization_endpoint')}")
print(f" Token: {config.get('token_endpoint')}")
print(f" UserInfo: {config.get('userinfo_endpoint')}")
print(f" JWKS: {config.get('jwks_uri')}")
print(f" Supported grants: {config.get('grant_types_supported')}")
print(f" Supported scopes: {config.get('scopes_supported')}")
print(f" PKCE methods: {config.get('code_challenge_methods_supported')}")
auth_endpoint = config['authorization_endpoint']
token_endpoint = config['token_endpoint']
else:
# Try common paths
for path in ["/authorize", "/oauth/authorize", "/oauth2/authorize", "/auth"]:
resp = requests.get(f"{AUTH_SERVER}{path}", allow_redirects=False)
if resp.status_code in (302, 400):
print(f"Authorization endpoint found: {AUTH_SERVER}{path}")
auth_endpoint = f"{AUTH_SERVER}{path}"
break
Etapa 2: Teste de Validação de URI de Redirecionamento
# Testar a rigidez da validação de redirect_uri
REDIRECT_BYPASS_PAYLOADS = [
# Variações de open redirect
REDIRECT_URI, # Legítimo
"https://evil.com", # Domínio diferente
"https://app.example.com.evil.com/callback", # Subdomínio do atacante
"https://app.example.com@evil.com/callback", # Confusão de autoridade de URL
f"{REDIRECT_URI}/../../../evil.com", # Travessia de diretório
f"{REDIRECT_URI}?next=https://evil.com", # Injeção de parâmetro
f"{REDIRECT_URI}#https://evil.com", # Injeção de fragmento
f"{REDIRECT_URI}%23evil.com", # Fragmento codificado
"https://app.example.com/callback/../../evil", # Caminho relativo
"https://APP.EXAMPLE.COM/callback", # Variação de maiúsculas/minúsculas
"https://app.example.com/Callback", # Variação de maiúsculas/minúsculas do caminho
"https://app.example.com/callback/", # Barra final
"https://app.example.com/callback?", # Ponto de interrogação final
"http://app.example.com/callback", # Downgrade HTTP
"https://app.example.com:443/callback", # Porta explícita
"https://app.example.com:8443/callback", # Porta diferente
f"{REDIRECT_URI}/.evil.com", # Segmento de ponto
"https://app.example.com/callbackevil", # Correspondência de prefixo de caminho
"javascript://app.example.com/callback%0aalert(1)", # Protocolo JavaScript
]
print("=== Testando Validação de URI de Redirecionamento ===\n")
for redirect in REDIRECT_BYPASS_PAYLOADS:
params = {
"response_type": "code",
"client_id": CLIENT_ID,
"redirect_uri": redirect,
"scope": SCOPE,
"state": secrets.token_urlsafe(32),
}
resp = requests.get(auth_endpoint, params=params, allow_redirects=False)
…
Perguntas frequentes
O que é OAuth 2.0 e OpenID Connect?
São padrões que permitem que você use uma conta (como Google ou Facebook) para fazer login em outros aplicativos sem precisar criar um novo cadastro para cada um.
O que é Burp Suite?
É uma ferramenta usada por profissionais de segurança para testar a segurança de aplicações web, interceptando e modificando o tráfego de rede.
Preciso de permissão para usar esta ferramenta?
Sim, é crucial ter autorização por escrito antes de testar qualquer sistema, pois esses testes podem levar ao roubo de tokens ou acesso não autorizado.
Detalhes
Descrição original do autor
Tests OAuth 2.0 and OpenID Connect implementations for authorization code interception, redirect URI manipulation, CSRF in OAuth flows, token leakage, scope escalation, and PKCE bypass, using Burp Suite Professional and the EsPReSSO extension to probe the authorization server, client, and token handling. Use when assessing OAuth2/OIDC flows or SSO systems for misconfigurations enabling account tak
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6233
- 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
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC