Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
hello-ReGrade-security — Finden Sie die Schwachstelle, die Ihre Tests nie darauf ausgelegt waren zu finden. Ein ReGrade-Demo, das CVE-2023-5968 modelliert: Fangen Sie ein Passwort-Hash-Leck, indem Sie eine App mit sich selbst vergleichen. | Kitploit
Tools/GitHubGitHub/curtail-inc/hello-regrade-security
Dynamische Analyse (Sandboxing)PasswortangriffeSchwachstellenanalyseAPI-SicherheitstestsWebsicherheitKryptographiePenetrationstestsLernen & BildungLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubcurtail-inc/hello-regrade-security

hello-ReGrade-security

Finden Sie die Schwachstelle, die Ihre Tests nie darauf ausgelegt waren zu finden. Ein ReGrade-Demo, das CVE-2023-5968 modelliert: Fangen Sie ein Passwort-Hash-Leck, indem Sie eine App mit sich selbst vergleichen.

Repository anzeigen
vor 7 TagenNoch nicht geprüft

hello-ReGrade-security

Eine praktische Demo zur Zero-Day-Entdeckung mit ReGrade. Sie werden eine gewöhnliche Testsuite auf ReGrade richten, sie gegen einen kleinen Dienst aufzeichnen, sie gegen eine zweite Kopie desselben Dienstes abspielen und mit Claude Code + den ReGrade MCP-Tools einen Passwort-Hash-Leak aufdecken – eine Schwachstelle, für die kein Test geschrieben wurde.

Es modelliert einen echten Fehler: CVE-2023-5968, bei dem der Endpunkt zur Aktualisierung des Benutzernamens einer Kollaborationsplattform das vollständige Benutzerobjekt einschließlich des bcrypt-Passwort-Hashes zurückgab. Er wurde 2017 ausgeliefert und überlebte 7 Jahre Tests, Überprüfungen und Audits. (Curtails Blogbeitrag.)

Der Clou: Es gibt kein v2. Sie vergleichen die App mit sich selbst. Eine frische Instanz hasht ihre Passwörter mit unterschiedlichen bcrypt-Salzen, daher unterscheiden sich die Werte des geleakten Hashes zwischen den beiden Kopien — und diese Entropie ist es, die ReGrade markiert. Die Schwachstelle ist im Code, den Sie bereits ausgeliefert haben, latent vorhanden; es ist keine Versionsänderung erforderlich, um sie zu finden.

Was Sie benötigen

  • Docker (für den Demo-Dienst) und Python (zum Ausführen der Traffic-Testsuite).
  • Ein ReGrade-Konto + API-Schlüssel — melden Sie sich unter https://app.regrade.curtail.com an, installieren Sie den regrade-Sensor von https://app.regrade.curtail.com/downloads und setzen Sie REGRADE_API_KEY (oder ~/.regrade/key).
  • Claude Code mit dem ReGrade-Plugin: claude plugin marketplace add https://app.regrade.curtail.com/downloads/latest/marketplace.json dann claude plugin install regrade@regrade --scope user und einmal verbinden (/mcp, angemeldet mit demselben Konto wie Ihr Schlüssel).

Der Demo-Dienst

Eine kleine "Team-Chat"-API (app/store.py) mit Benutzern und Kanälen. Docker Compose startet zwei identische Kopien – gleiches Image, gleicher Code, keine Versionskennung:

  • instance-a auf http://localhost:8001 – Sie zeichnen dagegen auf.
  • instance-b auf http://localhost:8002 – Sie spielen dagegen ab.

Ein Endpunkt hat einen eingepflanzten Fehler:

EndpointVerhalten
GET /users/<id> — gibt niemals das Passwort zurück. Die saubere Basislinie.

Passwörter werden beim Start mit bcrypt gehasht, daher enthalten instance-a und instance-b unterschiedliche Hashes für denselben Benutzer.

root@kitploit:~
git clone https://github.com/Curtail-Inc/hello-ReGrade-security
cd hello-ReGrade-security
docker compose up -d --build

1. Aufzeichnen — Richten Sie Ihre vorhandenen Tests auf ReGrade

traffic/test_api.py ist eine normale funktionale Testsuite: Anmelden, einen Benutzer lesen, einen Benutzer umbenennen, Kanäle auflisten. Sie testet das CRUD-Verhalten und stellt keine Sicherheitsannahmen – sie prüft nie, ob password durchsickert. (Warum sollte sie? Niemand wusste, dass der Fehler existierte.)

Starten Sie den Sensor-Proxy vor instance-a:

root@kitploit:~
regrade proxy --target http://localhost:8001 --port 19870

Führen Sie in einem anderen Terminal die gleiche Testsuite aus – setzen Sie einfach BASE_URL auf den Proxy. Dies ist die einzige Änderung:

root@kitploit:~
BASE_URL=http://localhost:19870 python -m pytest traffic/test_api.py

Alle Tests bestehen, unverändert. Stoppen Sie den Proxy (Strg-C); die Aufzeichnung wird hochgeladen und gibt eine Recording ID: <uuid> aus – notieren Sie diese.

2. Gegen instance-b abspielen

root@kitploit:~
regrade replay --rec-id <RECORDING_ID> --target http://localhost:8002

Auf beiden Seiten derselbe Code – die einzigen Unterschiede sind die Werte, die eine frische Instanz generiert.

3. Finden Sie den Leak in Claude Code

Öffnen Sie dieses Repository in Claude Code und bitten Sie es, Sie durch das Replay zu führen. Geleitet von der CLAUDE.md dieses Repositorys wird es:

  • summarize_deltas ausführen → mehrere Deltas: das Login-token, die created_at-Zeitstempel der Kanäle und — leise darunter — $.password.
  • das Rauschen mit Profilregeln reduzieren (der wiederverwendbare, korrekte Weg):
    • create_id_mapping für das Session-$.token (eine dynamische ID, kein Rauschen zum Verwerfen),
    • create_filter_rule DROP für $.channels[*].created_at (ein pro-Start-Zeitstempel),
    • apply_profile_to_replay, dann query_deltas(unlabeled_only=true) – wiederholen, bis nur noch ein Delta übrig ist.
  • Die Enthüllung: Das verbleibende Delta ist $.password – ein bcrypt-Hash in einem Antworttext. Ein Leak der CVE-Klasse, gefunden ohne Vorkenntnisse und ohne Sicherheitsannahmen.

4. Warum das anders ist

Sowohl das Session-Token als auch der Passwort-Hash unterscheiden sich zwischen den beiden Läufen – beide sind hochgradig entropische Zeichenketten, die sich jedes Mal ändern. Das eine ist legitimes Rauschen, das Sie mappen; das andere ist ein Bruch. Sie können sie nicht anhand von „es hat sich geändert" unterscheiden – Sie müssen darauf schauen, was sich geändert hat. Wenn Sie jedes hochgradig entropische Feld als Rauschen wegfiltern würden, hätten Sie die Schwachstelle versteckt.

Das ist die Lektion: ReGrade validiert keine Erwartungen, es vergleicht Verhalten – so kann es die Fehler aufdecken, für die niemand einen Test zu schreiben gedachte.

Wie der Leak funktioniert

app/store.py ist eine Datei. Die GET-Pfade rufen sanitize() auf; der PATCH-Pfad vergisst es. Schauen Sie nachdem Sie es mit ReGrade gefunden haben – der Punkt ist, dass ReGrade es allein aus Traffic aufgespürt hat, indem es die App mit sich selbst verglichen hat.

Lizenz

Apache-2.0.

Tool herunterladen
Bereinigt
PATCH /users/<id> (rename)Der Fehler — gibt das vollständige Benutzerobjekt einschließlich des bcrypt-password-Hashes zurück. Ein fehlender sanitize()-Aufruf, genau wie in CVE-2023-5968.