testing-cors-misconfiguration
Ensina seu agente de IA a testar o código e achar erros antes dos usuários e proteger aplicações contra ataques.
O que ela faz
Esta ferramenta ajuda a encontrar falhas de segurança em como sites permitem que outros sites acessem seus dados. Ela verifica se um site está liberando informações sensíveis indevidamente para outros sites, o que pode ser usado para roubar dados ou credenciais.
Quando usar
- ✓Ao testar a segurança de APIs de sites.
- ✓Quando um site usa permissões de acesso entre diferentes domínios.
- ✓Para verificar se dados de usuários podem ser roubados por outros sites.
Exemplo do que pedir para a IA
“Verifique se a API do meu site permite que outros sites leiam dados de perfil do usuário, mesmo com cookies.”
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 requisições de outros sites para o site alvo, verificando as respostas. Ela procura por configurações incorretas que permitam o acesso a dados que não deveriam ser públicos.
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-cors-misconfigurationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-cors-misconfiguration/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 Configuração Incorreta de CORS
Quando Usar
- Durante testes de penetração autorizados ao avaliar endpoints de API para controles de acesso cross-origin.
- Ao testar aplicações de página única que fazem requisições de API cross-origin.
- Para avaliar se dados sensíveis podem ser exfiltrados da sessão do navegador de uma vítima.
- Ao avaliar arquiteturas de microsserviços com múltiplos domínios compartilhando dados.
- Durante auditorias de segurança de aplicações que usam cabeçalhos CORS para comunicação entre domínios.
Pré-requisitos
- Autorização: Acordo escrito de teste de penetração para o alvo.
- Burp Suite Professional: Para interceptar e modificar cabeçalhos
Origin. - Navegador com DevTools: Para observar o comportamento de CORS em um contexto de navegador real.
- Servidor web do atacante: Para hospedar páginas de PoC de exploração de CORS.
- curl: Para testes manuais de cabeçalhos CORS.
- Servidor HTTP Python: Para hospedar páginas de exploit localmente.
Fluxo de Trabalho
Passo 1: Identificar a Configuração de CORS nos Endpoints de Destino
Verifique todos os endpoints de API em busca de cabeçalhos de resposta CORS.
# Test with a foreign Origin header
curl -s -I \
-H "Origin: https://evil.example.com" \
"https://api.target.example.com/api/user/profile"
# Check for CORS headers in response:
# Access-Control-Allow-Origin: https://evil.example.com (BAD: reflects any origin)
# Access-Control-Allow-Origin: * (BAD if with credentials)
# Access-Control-Allow-Credentials: true (allows cookies)
# Access-Control-Allow-Methods: GET, POST, PUT, DELETE
# Access-Control-Allow-Headers: Authorization, Content-Type
# Access-Control-Expose-Headers: X-Custom-Header
# Test multiple endpoints
for endpoint in /api/user/profile /api/user/settings /api/transactions \
/api/admin/users /api/account/balance; do
echo "=== $endpoint ==="
curl -s -I \
-H "Origin: https://evil.example.com" \
"https://api.target.example.com$endpoint" | \
grep -i "access-control"
echo
done
Passo 2: Testar Reflexão de Origem e Bypass de Validação
Determine como o servidor valida o cabeçalho Origin.
# Test 1: Arbitrary origin reflection
curl -s -I -H "Origin: https://evil.com" \
"https://api.target.example.com/api/user/profile" | grep -i "access-control-allow-origin"
# Test 2: Null origin
curl -s -I -H "Origin: null" \
"https://api.target.example.com/api/user/profile" | grep -i "access-control-allow-origin"
# Test 3: Subdomain matching bypass
curl -s -I -H "Origin: https://evil.target.example.com" \
"https://api.target.example.com/api/user/profile" | grep -i "access-control-allow-origin"
# Test 4: Prefix/suffix matching bypass
curl -s -I -H "Origin: https://target.example.com.evil.com" \
"https://api.target.example.com/api/user/profile" | grep -i "access-control-allow-origin"
curl -s -I -H "Origin: https://eviltarget.example.com" \
"https://api.target.example.com/api/user/profile" | grep -i "access-control-allow-origin"
# Test 5: Protocol downgrade
curl -s -I -H "Origin: http://target.example.com" \
"https://api.target.example.com/api/user/profile" | grep -i "access-control-allow-origin"
# Test 6: Special characters in origin
curl -s -I -H "Origin: https://target.example.com%60.evil.com" \
"https://api.target.example.com/api/user/profile" | grep -i "access-control-allow-origin"
# Test 7: Wildcard with credentials check
curl -s -I -H "Origin: https://evil.com" \
"https://api.target.example.com/api/public" | grep -iE "access-control-allow-(origin|credentials)"
# Wildcard (*) + credentials (true) is invalid per spec but some servers misconfigure
Passo 3: Testar o Tratamento de Requisições Preflight
Avalie como o servidor lida com requisições OPTIONS preflight.
# Enviar requisição preflight
curl -s -I -X OPTIONS \
-H "Origin: https://evil.example.com" \
-H "Access-Control-Request-Method: PUT" \
-H "Access-Control-Request-Headers: Authorization, Content-Type" \
"https://api.target.example.com/api/user/profile"
# Verificar:
# Access-Control-Allow-Methods: deve listar apenas os métodos necessários
# Access-Control-Allow-Headers: deve listar apenas os cabeçalhos necessários
# Access-Control-Max-Age: duração do cache preflight (longo = arriscado)
# Testar se métodos perigosos são permitidos
curl -s -I -X OPTIONS \
-H "Origin: https://evil.example.com" \
-H "Access-Control-Request-Method: DELETE" \
"https://api.target.example.com/api/user/profile" | \
grep -i "access-control-allow-methods"
# Testar se o preflight é cacheado por muito tempo
curl -s -I -X OPTIONS \
-H "Origin: https://evil.example.com" \
…
Perguntas frequentes
O que é CORS?
CORS (Cross-Origin Resource Sharing) é um mecanismo que permite que um site peça recursos (como dados de API) de outro domínio. Ele é usado para segurança, mas pode ser mal configurado.
O que é uma 'misconfiguration'?
É uma configuração incorreta. No caso do CORS, significa que as regras de acesso entre sites estão definidas de forma muito permissiva, abrindo brechas de segurança.
Quais são os riscos de uma má configuração de CORS?
Um invasor pode usar essa falha para roubar informações confidenciais do usuário, como tokens de autenticação, dados pessoais ou credenciais, sem que o usuário perceba.
Detalhes
Descrição original do autor
Identifying and exploiting Cross-Origin Resource Sharing misconfigurations that allow unauthorized cross-domain data access and credential theft during security assessments.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6218
- 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