Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
RatRace — Uma ferramenta CLI leve para detectar e explorar sistematicamente condições de corrida em aplicações web, APIs e serviços modernos. | Kitploit
Ferramentas/GitHubGitHub/bogdanticu88/ratrace
Scanners de VulnerabilidadesExploraçãoScripting e AutomaçãoTestes de Segurança de APIsSegurança WebFuzzingTestes de PenetraçãoDevSecOps
GitHubbogdanticu88/ratrace

RatRace

Uma ferramenta CLI leve para detectar e explorar sistematicamente condições de corrida em aplicações web, APIs e serviços modernos.

Ver Repositório
1014há 5 mesesAinda não revisado

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

RatRace

RatRace - Ferramenta de Teste de Condições de Corrida

Uma ferramenta CLI leve para detectar e explorar sistematicamente condições de corrida em aplicações web, APIs e serviços modernos.



Go Version License Status Platform Security Build


Que Problema Resolve

As condições de corrida representam uma das vulnerabilidades de segurança de maior impacto em aplicações modernas, mas continuam mal cobertas por scanners automatizados. Enquanto ferramentas como Nuclei, ffuf e sqlmap se destacam na descoberta de vulnerabilidades estáticas, elas são fundamentalmente cegas para problemas baseados em concorrência.

Os pentesters de hoje enfrentam uma escolha: escrever manualmente scripts descartáveis para cada teste, ou pular completamente os testes de condição de corrida. Nenhuma das opções é escalável ou profissional.

RatRace resolve isso fornecendo um fluxo de trabalho polido e repetível para testes de condição de corrida — transformando o que antes era script ad-hoc em um processo sistemático que se integra a pipelines CI/CD e gera relatórios profissionais.

Impacto no Mundo Real

Vulnerabilidades de condição de corrida aparecem frequentemente em áreas de alto impacto:

  • E-commerce: Pedidos duplicados, venda além do estoque, acumulação de descontos
  • Fintech: Transferências duplicadas, escalonamento de privilégios baseado em corrida, repetição de transações
  • Autenticação: Roubo de tokens, fixação de sessão, redefinição de senhas concorrente
  • Limitação de Taxa: Bypass via requisições concorrentes, abuso distribuído

Esses bugs consistentemente ganham as maiores recompensas em programas de bug bounty porque ameaçam diretamente a receita do negócio e a confiança do cliente.


Capacidades Principais

Testes Baseados em Modelos

Defina cenários de corrida uma vez em YAML, reutilize em projetos. O formato espelha os modelos do Nuclei para familiaridade:

id: checkout-race
info:
  name: Corrida de Pedido Duplicado no Checkout
  severity: critical
race:
  mode: burst
  concurrency: 20
  request:
    method: POST
    path: /api/v1/checkout
    headers:
      Authorization: "Bearer {{session}}"
    body: '{"item_id": "SKU-001"}'
validate:
  follow_up:
    method: GET
    path: /api/v1/orders?user={{user_id}}
  expect:
    json_field: "orders.length"
    condition: equals
    value: 1

Múltiplos Modos de Ataque

Modo Burst — Requisições paralelas baseadas em goroutines com sincronização precisa (estável, pronto para produção)

  • Dispara N goroutines que sincronizam com precisão de microssegundos
  • Ideal para a maioria das aplicações com janelas de corrida >5ms

Sincronização Last-Byte — Ataque no nível TCP HTTP/1.1 (implementação pronta, fase de testes)

  • Mantém todas as conexões no último byte do corpo da requisição
  • Libera via broadcast close() para janelas sub-milissegundo
  • Eficaz contra alvos com balanceamento de carga e limitação de taxa

Pacote Único — Ataque baseado em frames HTTP/2 (implementação pronta, fase de testes)

  • Envia todas as requisições em um único segmento TCP
  • Aproveita multiplexação para recepção quase simultânea no servidor
  • Bypassa alguns mecanismos de limitação de taxa

Validação Inteligente

RatRace automaticamente:

  • Fingerprinta respostas por código de status + hash do corpo para detectar anomalias
  • Agrupa resultados para identificar diferenças estatisticamente significativas
  • Calcula pontuações de confiança baseadas na frequência e magnitude das anomalias
  • Executa requisições de acompanhamento para confirmar mudanças de estado (ex.: "o item foi realmente comprado duas vezes?")
  • Suporta validação condicional com operadores: equals, not_equals, greater_than, contains

Integração com Fluxo de Trabalho

Importar requisições existentes:

# De comandos curl
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o template.yaml

# De arquivos HAR exportados do Burp
ratrace import --har session.har -o template.yaml

Automação CI/CD:

ratrace race -u $TARGET -t template.yaml --silent
echo $?  # Código de saída 10 = corrida encontrada, 0 = limpo

Relatórios profissionais:

# JSON para automação
ratrace race -u $TARGET -t template.yaml -o results/

# Relatórios HTML (planejado para V2)
ratrace report --input results.json --format html

Instalação

A partir do Código Fonte

git clone https://github.com/bogdanticu88/ratrace.git
cd ratrace
go build ./cmd/ratrace
./ratrace --help

Requisitos: Go 1.24+

Docker

docker build -t ratrace:latest .
docker run --rm -it ratrace:latest race -u https://api.example.com -t template.yaml

Uso

Início Rápido: Executar um Teste de Corrida

# 1. Importar do curl ou usar modelo existente
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o checkout.yaml

# 2. Executar a corrida
ratrace race -u https://api.example.com -t checkout.yaml -m burst -c 20

# 3. Revisar descobertas
# A saída mostra:
# 🔴 [CRITICAL] Corrida de Pedido Duplicado no Checkout
#     Taxa de Anomalia: 91.7%
#     Confiança:   84%

Exemplo: Corrida de Checkout em E-Commerce

ratrace race \
  -u https://shop.example.com \
  -t examples/templates/checkout-race.yaml \
  -m burst \
  -c 25 \
  --output results/

Exemplo: Modo Silencioso (para CI/CD)

# Executa sem logs verbosos, sai com código semântico
ratrace race -u https://api.example.com -t template.yaml --silent

# Verificar código de saída
if [ $? -eq 10 ]; then
  echo "Condição de corrida encontrada!"
  exit 1
fi

Referência de Comandos

race — Executar Ataque de Corrida

ratrace race -u <url> -t <template> [options]

Options:
  -m, --mode string          burst|lastbyte|singlepacket (padrão do modelo)
  -c, --concurrency int      Número de goroutines (padrão 20)
  -H, --header strings       Cabeçalhos personalizados (repetível)
  -x, --proxy string         URL do proxy para requisições
  -o, --output string        Diretório de saída para resultados
  --timeout duration         Timeout da requisição (padrão 10s)
  --insecure                 Ignorar verificação de certificado TLS
  --dry-run                  Analisar modelo e sair
  --silent                   Suprimir logs, mostrar apenas descobertas

import — Converter Requisições em Modelos

ratrace import [--curl <comando> | --har <arquivo>] -o <output.yaml>

Converte requisições existentes (comandos curl ou exportações HAR) em modelos RatRace.
Útil para integração com fluxos de trabalho existentes.

report — Gerar Relatórios

ratrace report --input results.json --format [html|json] --output report.html

Gera relatórios legíveis por humanos a partir dos resultados dos testes de corrida.

ratelimit — Testar Bypass de Limitação de Taxa

ratrace ratelimit -u <url> -c <concurrency>

Testa se endpoints são vulneráveis a bypass de limitação de taxa concorrente.

Formato do Modelo

Modelos são arquivos YAML que definem um cenário de corrida. Referência completa:

id: identificador-único
info:
  name: "Nome legível por humanos"
  severity: critical|high|medium|low|info
  tags: [tag1, tag2]
Baixar ferramenta