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
CVE-2023-48223 — Proof-of-concept, der JWT-Algorithmus-Verwirrung in der fast-jwt-Bibliothek demonstriert. Enthält einen verwundbaren Server, ein Skript zum Fälschen von Tokens und eine Korrektur der Verifikation für die Sicherheitsschulung. | Kitploit
Tools/GitHubGitHub/lucastran05/cve-2023-48223
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungLabs & Praxis
GitHublucastran05/cve-2023-48223

CVE-2023-48223

Proof-of-concept, der JWT-Algorithmus-Verwirrung in der fast-jwt-Bibliothek demonstriert. Enthält einen verwundbaren Server, ein Skript zum Fälschen von Tokens und eine Korrektur der Verifikation für die Sicherheitsschulung.

Repository anzeigen
vor 4 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

CVE-2023-48223 PoC (Algorithmen-Konfusion bei fast-jwt)

Dieses Repository demonstriert JWT-Algorithmen-Konfusion in fast-jwt, wenn die Token-Verifizierung die erlaubten Algorithmen nicht einschränkt.

Umgebungseinrichtung

Voraussetzungen

  • Node.js 18 oder neuer
  • npm
  • OpenSSL (muss im PATH des Terminals verfügbar sein)

1) Abhängigkeiten installieren

Führen Sie vom Projektstamm aus aus:

root@kitploit:~
npm install

2) RSA-Schlüssel generieren

Die App erwartet diese Dateien:

  • keys/private.pem
  • keys/public.pem

Führen Sie einen der folgenden Befehlssätze aus.

PowerShell (Windows):

root@kitploit:~
New-Item -ItemType Directory -Path keys -Force | Out-Null
openssl genrsa -out keys/private.pem 2048
openssl rsa -in keys/private.pem -RSAPublicKey_out -out keys/public.pem

Linux/macOS/Git Bash:

root@kitploit:~
mkdir -p keys
openssl genrsa -out keys/private.pem 2048
openssl rsa -in keys/private.pem -RSAPublicKey_out -out keys/public.pem

3) Server starten

root@kitploit:~
node server.js

Erwartete Ausgabe:

root@kitploit:~
Server running at http://localhost:3000

Schnellstart (PoC-Ablauf)

1) Normales Token abrufen

root@kitploit:~
curl http://localhost:3000/generateToken

2) Admin-Token fälschen

root@kitploit:~
node sign.js

Kopieren Sie das ausgegebene Token.

3) Admin-Endpunkt mit gefälschtem Token aufrufen

root@kitploit:~
node checkAdmin.js <JWT_TOKEN>

Wenn der Angriff erfolgreich ist, enthält die Antwort Welcome Admin!.

Warum dies angreifbar ist

In server.js schränkt der Verifizierer die Algorithmen nicht ein:

root@kitploit:~
const verifySync = createVerifier({
  key: publicKey,
});

Ohne eine Zulassungsliste für Algorithmen könnte der Server ein bösartiges HS256-Token akzeptieren, das mit dem öffentlichen Schlüssel als HMAC-Geheimnis signiert wurde.

Erklärung der Nachbildung der anfälligen Bibliothek (für den Bericht)

In den CVE-Demos der Gruppe ist das anfällige Objekt die Bibliothek (sie kann nicht eigenständig ausgeführt werden). Daher wird eine simulierte Anwendung benötigt, um zu reproduzieren, wie ein reales System die APIs dieser Bibliothek aufruft. In diesem Repository ist die Datei server.js die simulierte Anwendungsschicht.

  • Endpunkt /generateToken: Diese Route ruft createSigner von fast-jwt mit RS256 auf, um ein gültiges Token für einen normalen Benutzer zu erstellen (admin=false). Der Zweck ist die Erstellung eines Basislinien-Tokens, das mit dem gefälschten Token verglichen werden kann.
  • Endpunkt /admin: Diese Route empfängt ein Bearer-Token, ruft dann createVerifier von fast-jwt auf, um das Token zu verifizieren und die Admin-Berechtigung basierend auf payload.admin zu bestimmen. Die absichtlich verwundbare Stelle liegt darin, dass der Verifizierer die Algorithmen nicht einschränkt, was zu Algorithmen-Konfusion führt.

Ergänzender PoC-Code-Ablauf:

  • sign.js: Mit diesem Skript wird der Angreifer nachgeahmt, der createSigner mit HS256 aufruft und den öffentlichen Schlüssel als Geheimnis verwendet, um ein gefälschtes Token zu signieren (admin=true).
  • checkAdmin.js: Mit diesem Skript wird eine Anfrage an /admin mit dem gefälschten Token gesendet, um zu beweisen, dass der Server das gefälschte Token in der verwundbaren Konfiguration akzeptiert.

Zusammenfassend hat die Gruppe die Funktionen der Bibliothek nicht neu geschrieben. Sie verwendet lediglich die ursprüngliche API der anfälligen Bibliothek (createSigner, createVerifier) innerhalb der simulierten App, um den Exploit-Kontext korrekt nachzustellen.

Behebung

Schränken Sie die Verifizierung auf RS256 ein:

root@kitploit:~
const verifySync = createVerifier({
  key: publicKey,
  algorithms: ["RS256"],
});

Sicherheitshinweis

Dieses Projekt dient ausschließlich dem Sicherheitslernen in einer kontrollierten Laborumgebung.

Tool herunterladen