Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
corsair_scan — Scanner automatizado de má configuração de CORS que testa injeção de cabeçalho Origin, reflexão de curinga e vazamento de credenciais em aplicações web e APIs. | Kitploit
Ferramentas/GitHubGitHub/santandersecurityresearch/corsair_scan
Scanners de VulnerabilidadesTestes de Segurança de APIsSegurança WebConfiguração Incorreta
GitHubsantandersecurityresearch/corsair_scan

corsair_scan

Scanner automatizado de má configuração de CORS que testa injeção de cabeçalho Origin, reflexão de curinga e vazamento de credenciais em aplicações web e APIs.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
12215há 5 anosRevisado pelo Kitploit

GitHub release Github all releases HitCount Total alerts Language grade: Python MIT license

corsair_scan

Bem-vindo ao Corsair_scan

O Corsair_scan é uma ferramenta de segurança para testar configurações incorretas de Cross-Origin Resource Sharing (CORS). CORS é um mecanismo que permite que recursos restritos em uma página da web sejam solicitados de outro domínio fora do domínio do qual o primeiro recurso foi servido. Se não estiver configurado corretamente, domínios não autorizados podem acessar esses recursos.

O que é CORS?

CORS é um mecanismo baseado em cabeçalhos HTTP que permite que um servidor indique outras origens (domínio, esquema ou porta) além da sua própria a partir das quais um navegador deve permitir o carregamento de recursos. Funciona adicionando novos cabeçalhos HTTP que permitem que os servidores descrevam quais origens têm permissão para ler essas informações de um navegador web.

CORS também depende de um mecanismo pelo qual os navegadores fazem uma requisição “preflight” ao servidor que hospeda o recurso de origem cruzada, a fim de verificar se o servidor permitirá a requisição real. Nesse preflight, o navegador envia cabeçalhos que indicam o método HTTP e os cabeçalhos que serão usados na requisição real.

O problema de segurança mais comum e problemático ao implementar CORS é a falha em validar/colocar na lista de permissões os solicitantes. Muitas vezes, vemos o valor de Access-Control-Allow-Origin definido como ‘*’.

Infelizmente, este é o padrão e, como tal, permite que qualquer domínio na web acesse os recursos desse site.

De acordo com o OWASP Application Security Verification Standard (ASVS), o requisito 14.5.3 afirma

Verify that the Cross-Origin Resource Sharing (CORS) Access-Control-Allow-Origin header uses a strict allow list of trusted domains and subdomains to match against and does not support the "null" origin.

Como funciona o corsair_scan?

O Corsair_scan funciona reenviando uma requisição (ou lista de requisições) recebida como parâmetro e depois injetando um valor no cabeçalho Origin. Dependendo do conteúdo do cabeçalho Access-Control-Allow-Origin na resposta a esta requisição, podemos afirmar se a configuração CORS está correta ou não. Existem três cenários que indicam que o CORS está mal configurado:

  • A origem falsa enviada na requisição é refletida em Access-Control-Allow-Origin
  • O valor de Access-Control-Allow-Origin é *
  • O valor de Access-Control-Allow-Origin é nulo

Se o CORS for considerado mal configurado, verificamos se a resposta contém o cabeçalho Access-Control-Allow-Credentials, o que significa que o servidor permite que credenciais sejam incluídas em requisições de origem cruzada.

Frequentemente, as configurações de CORS fazem uso de curingas, por exemplo, aceitando qualquer coisa sob * example.com *. Isso significa que a origem domain.com.evil.com será aceita por corresponder à regex fornecida. Para tentar combater isso, o corsair_scan testa quatro cenários:

  • Injeção de domínio falso: Definimos o cabeçalho origin para https://scarymonster.com, mesmo que a requisição original não tenha um cabeçalho origin
  • Se a requisição original tiver um cabeçalho origin (para clareza, vamos supor que seja https://example.com):
    • Injeção de pré-domínio: Concatenamos nosso domínio falso ao domínio original à esquerda. Em nosso exemplo, a origem será definida como https://scarymonsterexample.com
    • Injeção de pós-domínio: O oposto do pré-domínio, apenas concatenação à direita. A origem será https://example.com.scarymonster.com
    • Injeção de subdomínio: Às vezes, a configuração CORS coloca na lista de permissões todos os subdomínios sob um determinado domínio. Embora não seja um problema por si só, se um dos domínios for vulnerável a XSS, pode ser um problema sério. A origem neste cenário será https://scarymonster.example.com

Como instalar?

Este projeto foi desenvolvido com Python 3.9, mas deve funcionar com qualquer versão Python 3.x. A melhor forma de instalá-lo é usando pip.

pip3 install corsair_scan --user

Como usar?

O Corsair pode ser usado tanto como um módulo python quanto como CLI.

Módulo Python

O método que realiza a varredura CORS é corsair_scan. Aqui está sua definição:

corsair_scan

Recebe uma lista de requisições e um parâmetro para ativar/desativar a verificação de certificado na requisição

Entrada:

  • data [List]: Uma lista de requisições. Cada requisição é um dicionário que contém os dados relevantes para a requisição:

    • url_data [Dict]: Este é um dicionário que contém todos os dados relevantes para a requisição:
      • url [String]: Esta é a url para onde a requisição é enviada
      • verb [String]: O verbo da requisição (get, post, patch, delete, options...)
      • params [String]: O corpo enviado na requisição (se houver)
      • headers [Dict]: Este é um dict com todos os cabeçalhos incluídos na requisição
  • verify [Boolean] [Padrão: True]: Envia este valor para corsair_scan_single_url para cada requisição

Saída:

  • final_report [List]: Contém o relatório completo do teste realizado. Se filter estiver definido como true, também adiciona um resumo do teste ao relatório.
    • report [List]: Lista de relatórios individuais detalhados com o teste realizado
    • summary [Dict]: Resumo dos problemas detectados na varredura

Exemplo

root@kitploit:~
import corsair_scan.corsair_scan as corsair
url_data = {}
data = []
verb =  'GET'
url = 'https://example.com/'
params = 'user=user1&password=1234'
headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
           'Accept-Language': 'en-GB,en;q=0.5', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1',
           'Origin': 'https://example.com',
           'Host': 'example.com'}

url_data['verb'] = verb
url_data['url'] = url
url_data['params'] = params
url_data['headers'] = headers
data.append(url_data)

print (corsair.corsair_scan(data, verify=True))

Resposta:

root@kitploit:~
{'report': [{'fake_origin': {'Access-Control-Allow-Origin': 'https://scarymonster.com',
                             'Origin': 'https://scarymonster.com',
                             'credentials': True,
                             'error': False,
                             'misconfigured': True,
                             'status_code': 200},
             'post-domain': {'Access-Control-Allow-Origin': 'https://example.com.scarymonster.com',
                             'Origin': 'https://example.com.scarymonster.com',
                             'credentials': True,
                             'error': False,
                             'misconfigured': True,
                             'status_code': 200},
             'pre-domain': {'Access-Control-Allow-Origin': 'https://scarymonsterexample.com',
                            'Origin': ' https://scarymonsterexample.com',
                            'credentials': True,
                            'error': False,
                            'misconfigured': True,
                            'status_code': 200},
             'sub-domain': {'Access-Control-Allow-Origin': 'https://scarymonster.example.com',
                            'Origin': 'https://scarymonster.example.com',
                            'credentials': True,
                            'error': False,
                            'misconfigured': True,
                            'status_code': 200},
             'url': 'https://example.com/',
             'verb': 'GET'}],
 'summary': {'error': [], 'misconfigured': [{'credentials': True,
                    'misconfigured_test': ['fake_origin',
                                           'sub-domain',
                                           'pre-domain',
                                           'post-domain'],
                    'status_code': 200,
                    'url': 'https://domain.com',
                    'verb': 'GET'}]}}

CLI

Como parte da instalação do pacote pip, uma CLI é instalada. A sintaxe para executar é a seguinte:

corsair FILE [-nv/--noverify][-r/--report]

A CLI precisa de um arquivo json com uma lista de requisições para realizar a varredura. Um arquivo de exemplo é fornecido como parte dos testes

:

root@kitploit:~
[{
  "verb": "GET",
  "url": "https://example.com/",
  "params": "user=user1&password=1234",
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Language": "en-GB,en;q=0.5",
    "Connection": "keep-alive",
    "Upgrade-Insecure-Requests": "1",
    "Origin": "https://example.com",
    "Host": "example.com"
  }
}]

Existem também dois parâmetros opcionais:

  • -nv / --noverify: Para pular a validação do certificado, se você estiver testando contra um site com certificado autoassinado
  • -r / --report: Salva o relatório como um arquivo JSON

Exemplo

Relatório CLI

Roteiro

  • Lançar corsair_scan como uma ferramenta CLI ✅
  • Ler dados de url de um arquivo de texto ✅
  • Melhorar o formato dos relatórios

Quem está por trás disso?

O Corsair_scan foi desenvolvido pela equipe de Engenharia de Segurança do Santander UK, que são:

  • David Albone
  • Javier Domínguez Ruiz
  • Fernando Cabrerizo
  • Jonathan Strong
  • James Howieson
Baixar ferramenta