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.

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.

Beliebte Tools zur Dekodierung von JWT-Tokens
| Werkzeug | Stärke | Link |
|---|---|---|
| JWT.io | Dekodierung in Echtzeit, schnelle Experimente | https://jwt.io |
| SuperTokens Decoder | Saubere, entwicklerfreundliche Benutzeroberfläche | https://supertokens.com/jwt-encoder-decoder |
| Auth0 Token-Debugger | Überprüfung auf Unternehmensebene | https://auth0.com/docs/tokens |
| PyJWT | CLI + Python-Bibliothek | https://pyjwt.readthedocs.io |
| jwt-decode (JS) | Leichtgewichtiger browser-seitiger Decoder | https://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:
- Ändert Algorithmus von
RS256zuHS256 - Verwendet den öffentlichen Schlüssel des Servers als HMAC-Geheimnis
- Fälscht gültige Token, die Administratorrollen gewähren
Dies ist nach wie vor einer der wirkungsvollsten JWT-Angriffe, die jemals entdeckt wurden.

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
expoderiat - 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:
- JWT entschlüsseln
- ändern
"sub": "501"zu"sub": "1" - erneut unterschreiben oder die Signatur umgehen
- privilegierten Endpunkt treffen
- 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
unterAnspruch - Privilegienerweiterung über gefälschte
RolleFelder
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
| Angriff | Beschreibung | Beispiel | Verteidigung |
|---|---|---|---|
| alg: keine | Entfernt Unterschrift | Leeres Unterschriftenfeld | Ablehnung von JWTs ohne Vorzeichen |
| RS→HS Verwirrung | Öffentlicher Schlüssel, der als HMAC-Geheimnis verwendet wird | Gefälschtes Admin-Token | Algorithmus durchsetzen |
| Schwaches Geheimnis | Brachiale Gewalt HS256 | "passwort123" geheim | 32-Byte-Zufallsschlüssel |
| Manipulierte Ansprüche | Rolle/Teilrolle ändern | Rolle "admin" | Server-seitige Autorisierung |
| XSS-Diebstahl | JS stiehlt JWT | localStorage.token | HttpOnly-Cookies |
| Replay-Angriff | Token wiederverwenden | Mobile Anwendungen | Kurzer TTL, Drehung |
| Durchgesickerte interne Token | Dienst-Identität | Microservices | mTLS, 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.
