O que cors-cross-origin-misconfiguration faz?
Manual de testes de má configuração de CORS. Use ao analisar confiança entre origens, leitura autenticada pelo navegador, reflexão de origem, falhas de política de preflight e acesso baseado em navegador a APIs autenticadas.
Tópicos Abordados
- Confiança entre origens: Verifique se origens não confiáveis têm permissão para acessar recursos.
- Leitura autenticada pelo navegador: Teste se requisições com credenciais (cookies, tokens) podem ser feitas de origens externas.
- Reflexão de origem: Identifique se o cabeçalho
Access-Control-Allow-Originreflete dinamicamente o valor do cabeçalhoOriginda requisição. - Falhas de política de preflight: Teste se a resposta para requisições OPTIONS permite métodos, cabeçalhos ou origens inseguras.
- Acesso a APIs autenticadas: Verifique se APIs que exigem autenticação podem ser acessadas indevidamente via navegador.
Como Usar
- Identifique endpoints que podem estar vulneráveis a má configuração de CORS.
- Utilize um proxy interceptador (como Burp Suite) ou ferramentas de linha de comando (como
curl) para enviar requisições com cabeçalhosOriginpersonalizados. - Analise as respostas do servidor para verificar a presença e os valores dos cabeçalhos
Access-Control-Allow-Origin,Access-Control-Allow-Credentials,Access-Control-Allow-MethodseAccess-Control-Allow-Headers. - Aplique os testes descritos neste manual para cada cenário.
Exemplos de Testes
Teste de Reflexão de Origem
curl -H "Origin: https://evil.com" -H "User-Agent: Mozilla/5.0" --verbose https://api.exemplo.com/recurso
- Verifique se a resposta contém
Access-Control-Allow-Origin: https://evil.com. Caso sim, a configuração está vulnerável.
Teste de Credenciais
curl -H "Origin: https://evil.com" -H "Cookie: session=abc123" --verbose https://api.exemplo.com/dados-sensiveis
- Se a resposta incluir
Access-Control-Allow-Credentials: trueeAccess-Control-Allow-Origin: https://evil.com, o servidor permite leitura autenticada de origens não confiáveis.
Referências
Nota: Este manual é destinado a fins educacionais e testes autorizados. Use com responsabilidade.