OAuth2 — Falhas em Fluxos de Autorização
Implementações OAuth2 vulneráveis permitem roubo de authorization codes. Veja redirect_uri bypass, ausência de state parameter e PKCE downgrade com exemplos.
O Que É OAuth2
OAuth2 é o protocolo padrão de autorização em aplicações modernas, mas implementações incorretas criam vetores sérios de ataque. Falhas comuns: (1) redirect_uri não validado — autorização pode ser redirecionada para domínio do atacante; (2) Ausência de state parameter — permite CSRF no fluxo OAuth; (3) PKCE downgrade — remoção de code_challenge aceita sem verificação; (4) Token leakage — access_token exposto em URL, logs ou Referer header.
Exemplo Real de Ataque
# redirect_uri bypass via wildcard insuficiente
GET /oauth/authorize
?client_id=app123
&redirect_uri=https://app.empresa.com.br.attacker.com/callback
&response_type=code
&scope=openid+profile+email
&state=IGNORED
# Servidor valida apenas prefixo "https://app.empresa.com" → ✓ aceita!
# Authorization code entregue para attacker.comImpacto no Negócio e Compliance
Roubo de authorization code → impersonação de qualquer conta. Em integrações com Google/GitHub/SSO corporativo, um redirect_uri bypass permite assumir contas de usuários sem senha. Para aplicações com OAuth de terceiros (bancárias, de pagamento), o impacto é financeiro direto.
Como Remediar
# ✅ REMEDIAÇÃO: Validação exata de redirect_uri
ALLOWED_REDIRECT_URIS = {
"https://app.empresa.com.br/callback",
"https://app.empresa.com.br/auth/callback"
}
def validate_redirect_uri(uri: str) -> bool:
# NUNCA use startswith() ou contains() — use exact match
return uri in ALLOWED_REDIRECT_URIS
# ✅ State parameter obrigatório e verificado
import secrets
state = secrets.token_urlsafe(32)
session["oauth_state"] = state
# Na callback: assert request.args["state"] == session["oauth_state"]Como a Veyronn Detecta Esta Vulnerabilidade
Testamos redirect_uri bypass (subdomínio, path traversal, query string), ausência e previsibilidade de state, PKCE downgrade, e token leakage em headers e logs. Mapeamos todos os providers OAuth configurados.
Vulnerabilidades Relacionadas
Pronto para Contratar seu Próximo Pentest?
Adquira nossa avaliação pontual feita pelos melhores profissionais do mercado ou implemente o software da Veyronn 24/7.
