
XSRFProbe v3.0.0
O Prime Kit de Ferramentas de Auditoria e Exploração de Falsificação de Solicitação entre Sites (CSRF).
XSRFProbe
O Principal Kit de Auditoria e Exploração de Cross Site Request Forgery.
Sobre
XSRFProbe é um avançado Kit de Auditoria e Exploração de Cross Site Request Forgery (CSRF/XSRF). Equipado com um poderoso motor de rastreamento e inúmeras verificações sistemáticas, é capaz de detectar a maioria dos casos de vulnerabilidades CSRF, seus bypasses relacionados e gerar provas de conceito exploráveis para cada vulnerabilidade encontrada. Para mais informações sobre como o XSRFProbe funciona, veja Funcionamento Interno do XSRFProbe na wiki.
Wiki do XSRFProbe • Primeiros Passos • Uso Geral • Uso Avançado • Funcionamento Interno do XSRFProbe • Galeria
Algumas Funcionalidades
- Executa uma bateria completa de verificações sistemáticas — apoiadas por um motor de diff/benchmark de respostas — antes de declarar um endpoint vulnerável.
- Detecta e manipula ativamente muitas implementações de token Anti-CSRF: troca de método de requisição, remoção de token, valores vazios/duplicados, tokens não vinculados à sessão, cookies de duplo envio e tokens de cabeçalho personalizado.
- Testa a validação de Referer e Origin com bypasses do mundo real (remoção de cabeçalho, truques de regex/subdomínio,
Origin: null), bem como bypasses de método-override e Content-Type. - Analisa proteções de cookie SameSite, com enumeração opcional de subdomínios (via crt.sh) para testes de bypass em domínios irmãos.
- Funciona com um poderoso rastreador com rastreamento determinístico e limitado (configurável via
--max-urls,--max-depthe--crawl-timeout). - Integração opcional com Firefox headless (Selenium) para testes dependentes de navegador e validação automática de PoCs gerados.
- Detecção e Análise precisa da Força do Token usando verificações de entropia e codificação.
- Pode gerar provas de conceito CSRF tanto normais quanto maliciosamente exploráveis.
- Suporte nativo para valores de cookie personalizados, cabeçalhos genéricos e um relatório JSON — cada descoberta traz uma classificação de gravidade e uma pré-condição de explorabilidade.
- O usuário tem controle total sobre tudo o que o scanner faz.
- Ambiente de interação amigável com suporte completo a verbose e registro detalhado de erros, vulnerabilidades e tokens.
Testes de Vulnerabilidade Realizados:
Cada verificação executada pelo XSRFProbe tem um identificador único. O ID é mostrado na saída do console (ex.: [T6] VULNERABLE: ...) e armazenado como o campo test_id de cada descoberta no relatório JSON (junto com sua severity e, quando relevante, uma nota de exploitability em details), para que cada descoberta corresponda ao teste exato que a produziu.
| ID | Categoria | Verificação |
|---|---|---|
D1 | Presença de token | Nenhum token anti-CSRF presente (falsificação de requisição genérica) |
D2 | Presença de token | Formulário de login sem token CSRF (login CSRF) |
T2 | Manipulação de token | Validação vinculada ao método de requisição (troca GET ↔ POST) |
T3 | Manipulação de token | Token pode ser omitido completamente |
T4 | Manipulação de token | Token não vinculado à sessão do usuário (replay entre sessões) |
T5 | Manipulação de token | Token vinculado a um cookie não-sessão (ex.: csrfKey) |
T6 | Manipulação de token | Cookie de duplo envio ingênuo (cookie == corpo, sem vínculo) |
T7 | Manipulação de token | Valor de token vazio aceito |
T8 | Manipulação de token | Token de cabeçalho personalizado pode ser omitido ou forjado |
M1 | Método / Content-Type | Sobrescrita de método HTTP via parâmetro _method |
M2 | Método / Content-Type | Sobrescrita de método HTTP via cabeçalho X-HTTP-Method-Override |
M4 | Método / Content-Type | Bypass de validação via Content-Type alternativo |
R0 | Referer | Cabeçalho Referer não validado no envio do formulário |
R1 | Referer | Validação de Referer ignorada ao omitir o cabeçalho |
R2a | Referer | Bypass de regex de Referer — alvo como subdomínio do atacante |
R2b | Referer | Bypass de regex de Referer — alvo na string de consulta |
R2c | Referer | Bypass de regex de Referer — alvo no caminho |
O1 | Origin | Validação de Origin ignorada com Origin: null |
O2 | Origin | Validação de Origin ignorada com truque de subdomínio |
O3 | Origin | Validação de Origin ignorada ao omitir o cabeçalho |
S2 | SameSite (navegador) | Bypass de SameSite=Strict via gadget de redirecionamento no lado do cliente |
S3 | SameSite (navegador) | Bypass de SameSite=Strict via XSS em um subdomínio irmão |
S4 | SameSite (navegador) | Bypass de SameSite=Lax via fluxo de cookie-refresh / OAuth |
C1 | Postura de cookie | Análise do atributo SameSite do cookie (None/Lax/Strict) |
C2 | Postura de cookie | Nenhum atributo SameSite definido nos cookies |
E1 | Força do token | Token usa uma codificação de hash fraca/estruturada |
A1 | Força do token | Análise de previsibilidade/forjabilidade do token pós-varredura |
As verificações
S*exigem a integração opcional com navegador headless (--browser). As verificaçõesT*/M*/R*/O*são verificações de nível HTTP controladas pelo motor de diff/benchmark de respostas.
Galeria
Vamos ver alguns cenários reais do XSRFProbe em ação:
Instalação e Uso
Para informações completas de uso, consulte as wikis — Uso Geral e Uso Avançado.
Instalação via Pypi:
O XSRFProbe pode ser facilmente instalado com um único comando:
pip install xsrfprobe
Instalação manual:
- Para o básico, o primeiro passo é instalar a ferramenta:
pip install .
- Agora, a ferramenta pode ser iniciada via:
xsrfprobe --help
- Os testes dependentes de navegador (
--browser,--auto-validate-poc) adicionalmente requerem o geckodriver disponível no seuPATH(ou apontado via--geckodriver-path). - Após testar o XSRFProbe em um site, uma pasta de saída é criada no seu diretório de trabalho atual como
xsrfprobe-output. Nesta pasta você pode ver os logs detalhados e informações coletadas durante as varreduras (passe--jsonpara um relatório legível por máquina).
Versão e Licença
O XSRFProbe está atualmente na versão v3.0.0 e o trabalho é licenciado sob a Licença Pública Geral GNU (GPLv3).
Avisos
Não use esta ferramenta em um site ao vivo!
Isso porque esta ferramenta foi projetada para realizar todos os tipos de submissões de formulários automaticamente, o que pode sabotar o site. Às vezes você pode danificar o banco de dados e provavelmente realizar um DoS no site também.
Teste em uma configuração/site descartável/de mentira!
Isenção de Responsabilidade
O uso do XSRFProbe para testar sites sem consentimento mútuo prévio pode ser considerado uma atividade ilegal. É de responsabilidade do usuário final obedecer a todas as leis locais, estaduais e federais aplicáveis. O autor não assume nenhuma responsabilidade e não se responsabiliza por qualquer uso indevido ou dano causado por este programa.
Palavras do Autor
Este projeto é baseado inteiramente em minha própria pesquisa e minha própria experiência com aplicações web em ataques de Cross-Site Request Forgery. Você pode tentar examinar o código-fonte para entender como este kit foi construído. Pull requests úteis, ideias e problemas são bem-vindos. Se você deseja ver como o XSRFProbe está sendo desenvolvido, confira o Quadro de Desenvolvimento.
Feito com ♡ por @0xInfection