Pular para o conteúdo
Skillpedia
Testes35 mil · #6218

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-cors-misconfiguration/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-cors-misconfiguration/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-misconfiguration

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-cors-misconfiguration/SKILL.md -o SKILL.md
Conteú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.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6218
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas