Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
RatRace — Ein leichtgewichtiges CLI-Tool zur systematischen Erkennung und Ausnutzung von Wettlaufsituationen in Webanwendungen, APIs und modernen Diensten. | Kitploit
Tools/GitHubGitHub/bogdanticu88/ratrace
SchwachstellenscannerExploitationScripting & AutomatisierungAPI-SicherheitstestsWebsicherheitFuzzingPenetrationstestsDevSecOps
GitHubbogdanticu88/ratrace

RatRace

Ein leichtgewichtiges CLI-Tool zur systematischen Erkennung und Ausnutzung von Wettlaufsituationen in Webanwendungen, APIs und modernen Diensten.

Repository anzeigen
1014vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

RatRace

RatRace – Toolkit für Race-Condition-Tests

Ein leichtgewichtiges CLI-Tool zur systematischen Erkennung und Ausnutzung von Race Conditions in Webanwendungen, APIs und modernen Diensten.



Go Version License Status Platform Security Build


Welches Problem es löst

Race Conditions gehören zu den Sicherheitslücken mit der größten Auswirkung in modernen Anwendungen, werden aber von automatischen Scannern nach wie vor kaum abgedeckt. Während Tools wie Nuclei, ffuf und sqlmap hervorragend darin sind, statische Schwachstellen zu finden, sind sie grundsätzlich blind für nebenläufigkeitsbedingte Probleme.

Pentestern bleibt heute nur die Wahl: entweder jedes Mal manuell Wegwerfskripte schreiben oder ganz auf Race-Condition-Tests verzichten. Keine der beiden Optionen ist skalierbar oder professionell.

RatRace löst dies, indem es einen ausgereiften, wiederholbaren Workflow für Race-Condition-Tests bereitstellt – aus Ad-hoc-Skripten wird ein systematischer Prozess, der sich in CI/CD-Pipelines integrieren lässt und professionelle Berichte erstellt.

Auswirkungen in der Praxis

Race-Condition-Schwachstellen treten häufig in Bereichen mit hoher Auswirkung auf:

  • E-Commerce: Doppelte Bestellungen, Lagerüberverkäufe, Rabattstapelung
  • Fintech: Doppelte Überweisungen, privilegienbasierte Eskalation, Transaktionswiedergabe
  • Authentifizierung: Token-Draining, Session-Fixierung, gleichzeitige Passwortzurücksetzungen
  • Ratenbegrenzung: Umgehung durch gleichzeitige Anfragen, verteilter Missbrauch

Diese Bugs erzielen in Bug-Bounty-Programmen durchweg die höchsten Prämien, da sie direkt den Geschäftsumsatz und das Kundenvertrauen gefährden.


Kernfunktionen

Template-gesteuertes Testen

Definieren Sie Race-Szenarien einmal in YAML und verwenden Sie sie in mehreren Projekten. Das Format orientiert sich an Nuclei-Templates für einen vertrauten Umgang:

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

Mehrere Angriffsmodi

Burst-Modus – Parallelanfragen auf Basis von Goroutinen mit präziser Synchronisation (stabil, produktionsreif)

  • Startet N Goroutinen, die mit Mikrosekunden-Präzision synchronisieren
  • Ideal für die meisten Anwendungen mit Race-Fenstern >5ms

Last-Byte-Sync – TCP-Level-Angriff über HTTP/1.1 (Implementierung fertig, Testphase)

  • Hält alle Verbindungen am letzten Byte des Anforderungstextes
  • Freigabe per close()-Broadcast für Sub-Millisekunden-Fenster
  • Effektiv gegen Lastverteilung und Ratenbegrenzung

Single-Packet – Frame-basierter Angriff über HTTP/2 (Implementierung fertig, Testphase)

  • Sendet alle Anfragen in einem einzigen TCP-Segment
  • Nutzt Multiplexing für nahezu gleichzeitigen Server-Empfang
  • Umgeht einige Ratenbegrenzungs-Mechanismen

Intelligente Validierung

RatRace erledigt automatisch:

  • Fingerprinting von Antworten mittels Statuscode + Body-Hash, um Anomalien zu erkennen
  • Clustering der Ergebnisse, um statistisch signifikante Unterschiede zu identifizieren
  • Berechnung von Konfidenzwerten basierend auf Häufigkeit und Ausmaß der Anomalien
  • Ausführung von Folgeanfragen, um Zustandsänderungen zu bestätigen (z. B. „Wurde der Artikel wirklich doppelt gekauft?“)
  • Unterstützung bedingter Validierung mit Operatoren: equals, not_equals, greater_than, contains

Workflow-Integration

Vorhandene Anfragen importieren:

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

# Von Burp exportierten HAR-Dateien
ratrace import --har session.har -o template.yaml

CI/CD-Automatisierung:

ratrace race -u $TARGET -t template.yaml --silent
echo $?  # Exit-Code 10 = Race gefunden, 0 = sauber

Professionelle Berichterstellung:

# JSON für Automatisierung
ratrace race -u $TARGET -t template.yaml -o results/

# HTML-Berichte (geplant für V2)
ratrace report --input results.json --format html

Installation

Aus dem Quelltext

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

Voraussetzungen: Go 1.24+

Docker

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

Verwendung

Schnellstart: Race-Test ausführen

# 1. Von curl importieren oder vorhandenes Template verwenden
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o checkout.yaml

# 2. Race ausführen
ratrace race -u https://api.example.com -t checkout.yaml -m burst -c 20

# 3. Ergebnisse prüfen
# Ausgabe zeigt:
# 🔴 [CRITICAL] Checkout Duplicate Order Race
#     Anomaly Rate: 91.7%
#     Confidence:   84%

Beispiel: E-Commerce-Checkout-Race

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

Beispiel: Stiller Modus (für CI/CD)

# Läuft ohne ausführliche Logs, beendet mit semantischem Code
ratrace race -u https://api.example.com -t template.yaml --silent

# Exit-Code prüfen
if [ $? -eq 10 ]; then
  echo "Race condition found!"
  exit 1
fi

Befehlsreferenz

race — Race-Angriff ausführen

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

Options:
  -m, --mode string          burst|lastbyte|singlepacket (Standard aus Template)
  -c, --concurrency int      Goroutine-Anzahl (Standard 20)
  -H, --header strings       Benutzerdefinierte Header (wiederholbar)
  -x, --proxy string         Proxy-URL für Anfragen
  -o, --output string        Ausgabeverzeichnis für Ergebnisse
  --timeout duration         Anfrage-Timeout (Standard 10s)
  --insecure                 TLS-Zertifikatsprüfung überspringen
  --dry-run                  Template parsen und beenden
  --silent                   Logs unterdrücken, nur Ergebnisse anzeigen

import — Anfragen in Templates umwandeln

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

Konvertiert vorhandene Anfragen (curl-Befehle oder HAR-Exporte) in RatRace-Templates.
Nützlich zur Integration in bestehende Workflows.

report — Berichte erstellen

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

Erstellt menschenlesbare Berichte aus Race-Testergebnissen.

ratelimit — Ratenbegrenzungsumgehung testen

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

Testet, ob Endpunkte anfällig für gleichzeitige Ratenbegrenzungsumgehungen sind.

Template-Format

Templates sind YAML-Dateien, die ein Race-Szenario definieren. Vollständige Referenz:

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