OAuth2 / OIDC
Só leitura — não altera nada no alvo. Só em alvo seu ou autorizado por escrito.
O vetor
Vetor: redirect_uri mal validado, state ausente (CSRF de login), PKCE ausente em SPA/mobile, roubo de code.
O que testamos: validação de redirect_uri, presença de state e PKCE.
Os passos
Passo 1 (🟢) — redirect_uri aberto:
# Trocar o redirect por um domínio seu de teste — deve ser REJEITADO:
curl -s -o /dev/null -w "%{http_code}\n" \
"$BASE/oauth/authorize?client_id=X&redirect_uri=https://pentest-attacker.example/&response_type=code"
O que esperar
- VULNERÁVEL: aceita
redirect_urifora da allowlist; semstate; SPA sem PKCE. - SEGURO:
redirect_uripor match exato na allowlist;stateobrigatório; PKCE (S256) em clientes públicos.
Como corrigir
Correção (P1): allowlist exata de redirect; state + PKCE obrigatórios; code de uso único e curto.
Limpeza: nenhuma.