Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
RatRace — Uno strumento CLI leggero per rilevare e sfruttare sistematicamente le race condition nelle applicazioni web, nelle API e nei servizi moderni. | Kitploit
Strumenti/GitHubGitHub/bogdanticu88/ratrace
Scanner di VulnerabilitàExploitScripting e AutomazioneTest di Sicurezza delle APISicurezza WebFuzzingPenetration TestingDevSecOps
GitHubbogdanticu88/ratrace

RatRace

Uno strumento CLI leggero per rilevare e sfruttare sistematicamente le race condition nelle applicazioni web, nelle API e nei servizi moderni.

Vedi Repository
10145 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

RatRace

RatRace - Kit di Testing per Race Condition

Uno strumento CLI leggero per rilevare e sfruttare sistematicamente le race condition in applicazioni web, API e servizi moderni.



Go Version License Status Platform Security Build


Che Problema Risolve

Le race condition rappresentano una delle vulnerabilità di sicurezza a più alto impatto nelle applicazioni moderne, eppure rimangono scarsamente coperte dagli scanner automatici. Mentre strumenti come Nuclei, ffuf e sqlmap eccellono nel trovare vulnerabilità statiche, sono fondamentalmente ciechi ai problemi legati alla concorrenza.

I pentester oggi si trovano di fronte a una scelta: scrivere manualmente script usa e getta per ogni incarico, oppure saltare del tutto il test delle race condition. Nessuna delle due opzioni è scalabile o professionale.

RatRace risolve questo problema fornendo un workflow rifinito e ripetibile per il test delle race condition—trasformando quella che era una pratica ad-hoc in un processo sistematico che si integra con pipeline CI/CD e genera report professionali.

Impatto nel Mondo Reale

Le vulnerabilità di race condition si presentano frequentemente in aree ad alto impatto:

  • E-commerce: Ordini duplicati, overselling dell'inventario, stacking di sconti
  • Fintech: Doppi trasferimenti, escalation di privilegi basata su race, replay di transazioni
  • Autenticazione: Drenaggio di token, session fixation, reset di password concorrenti
  • Rate Limiting: Bypass tramite richieste concorrenti, abuso distribuito

Questi bug ottengono costantemente le taglie più alte nei programmi bug bounty perché minacciano direttamente le entrate aziendali e la fiducia dei clienti.


Capacità Principali

Test Basato su Template

Definisci scenari di race una volta in YAML, riutilizzali tra progetti. Il formato rispecchia i template di Nuclei per familiarità:

id: checkout-race
info:
  name: Checkout Duplicate Order Race
  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

Modalità di Attacco Multiple

Modalità Burst — Richieste parallele basate su goroutine con sincronizzazione precisa (stabile, pronta per la produzione)

  • Lancia N goroutine che si sincronizzano con precisione al microsecondo
  • Ideale per la maggior parte delle applicazioni con finestre di race >5ms

Last-Byte Sync — Attacco a livello TCP HTTP/1.1 (implementazione pronta, fase di test)

  • Mantiene tutte le connessioni all'ultimo byte del corpo della richiesta
  • Rilascio tramite broadcast close() per finestre sub-millisecondo
  • Efficace contro target con bilanciamento del carico e limitazione di velocità

Single-Packet — Attacco basato su frame HTTP/2 (implementazione pronta, fase di test)

  • Invia tutte le richieste in un singolo segmento TCP
  • Sfrutta il multiplexing per una ricezione quasi simultanea da parte del server
  • Bypassa alcuni meccanismi di rate limiting

Validazione Intelligente

RatRace automaticamente:

  • Impronta digitale delle risposte tramite codice di stato + hash del corpo per rilevare anomalie
  • Raggruppa i risultati per identificare differenze statisticamente significative
  • Calcola punteggi di confidenza basati sulla frequenza e l'entità delle anomalie
  • Esegue richieste di follow-up per confermare cambiamenti di stato (ad es., "l'articolo è stato davvero acquistato due volte?")
  • Supporta validazione condizionale con operatori: equals, not_equals, greater_than, contains

Integrazione nel Workflow

Importa richieste esistenti:

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

# Da file HAR esportati da Burp
ratrace import --har session.har -o template.yaml

Automazione CI/CD:

ratrace race -u $TARGET -t template.yaml --silent
echo $?  # Codice di uscita 10 = race trovata, 0 = pulito

Report professionali:

# JSON per automazione
ratrace race -u $TARGET -t template.yaml -o results/

# Report HTML (pianificati per V2)
ratrace report --input results.json --format html

Installazione

Da Sorgente

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

Requisiti: Go 1.24+

Docker

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

Utilizzo

Avvio Rapido: Esegui un Test di Race

# 1. Importa da curl o usa un template esistente
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o checkout.yaml

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

# 3. Rivedi i risultati
# L'output mostra:
# 🔴 [CRITICAL] Checkout Duplicate Order Race
#     Anomaly Rate: 91.7%
#     Confidence:   84%

Esempio: Race su Checkout E-commerce

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

Esempio: Modalità Silenziosa (per CI/CD)

# Viene eseguito senza log verbosi, esce con codice semantico
ratrace race -u https://api.example.com -t template.yaml --silent

# Controlla il codice di uscita
if [ $? -eq 10 ]; then
  echo "Race condition trovata!"
  exit 1
fi

Riferimento Comandi

race — Esegui Attacco Race

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

Options:
  -m, --mode string          burst|lastbyte|singlepacket (default from template)
  -c, --concurrency int      Goroutine count (default 20)
  -H, --header strings       Custom headers (repeatable)
  -x, --proxy string         Proxy URL for requests
  -o, --output string        Output directory for results
  --timeout duration         Request timeout (default 10s)
  --insecure                 Skip TLS certificate verification
  --dry-run                  Parse template and exit
  --silent                   Suppress logs, show findings only

import — Converti Richieste in Template

ratrace import [--curl <command> | --har <file>] -o <output.yaml>

Converte richieste esistenti (comandi curl o esportazioni HAR) in template RatRace.
Utile per l'integrazione con workflow esistenti.

report — Genera Report

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

Genera report leggibili da umani dai risultati dei test di race.

ratelimit — Testa Bypass del Rate Limit

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

Testa se gli endpoint sono vulnerabili al bypass concorrente del rate limit.

Formato Template

I template sono file YAML che definiscono uno scenario di race. Riferimento completo:

id: unique-identifier
info:
  name: "Human-readable name"
  severity: critical|high|medium|low|info
  tags: [tag1, tag2]
Scarica lo strumento