Wie teste ich auf JWT-Angriffe?

Dec 27 2022
Hallo allerseits in diesem Blog, ich werde versuchen, JWT-Angriffe zusammenzufassen. Wir haben 3 wichtige solide Punkte, über die wir sprechen werden - Was sind JWTs? - Was sind JWT-Angriffe? - Szenarien über JWT-Angriffe Fangen wir an !! - Was sind JWTs? JSON-Web-Tokens (JWTs) sind ein standardisiertes Format zum Senden kryptografisch signierter JSON-Daten zwischen Systemen. Anders als bei klassischen Sitzungstoken werden alle Daten, die ein Server benötigt, clientseitig im JWT selbst gespeichert.

Hallo zusammen, in diesem Blog werde ich versuchen, JWT-Angriffe zusammenzufassen

Wir haben 3 wichtige solide Punkte, über die wir sprechen werden
- Was sind JWTs?
- Was sind JWT-Angriffe?
- Szenarien über JWT-Angriffe

Lass uns anfangen !!

- Was sind JWTs ?

JSON-Web-Tokens (JWTs) sind ein standardisiertes Format zum Senden kryptografisch signierter JSON-Daten zwischen Systemen. Anders als bei klassischen Sitzungstoken werden alle Daten, die ein Server benötigt, clientseitig im JWT selbst gespeichert.
Ein JWT besteht aus 3 Teilen: einem Header , einer Payload und einer Signatur . Diese sind jeweils durch einen Punkt getrennt.xxxxx.yyyyy.zzzzz

Die Header- und Payload - Teile eines JWT sind nur base64url-codierte JSON-Objekte. In den meisten Fällen können die Daten von Header und Payload von jedem mit Zugriff auf das Token leicht gelesen oder geändert werden. Daher hängt die Sicherheit jedes JWT-basierten Mechanismus stark von der kryptografischen Signatur ab .
Um den Signaturteil zu erstellen, müssen Sie den codierten Header , die codierte Nutzlast , ein Geheimnis , den im Header angegebenen Algorithmus nehmen und das signieren .

- Was sind JWT-Angriffe?

Bei JWT-Angriffen sendet ein Benutzer modifizierte JWTs an den Server, um ein böswilliges Ziel zu erreichen.

- Szenarien über JWT-Angriffe

Um die Idee zusammenzufassen, die wir haben, ist ein Ziel, mit der Signatur zu spielen. Wir können mit der Signatur spielen, indem wir mit dem Inhalt der Signatur spielen (Payload – „alg“ des Headers – Header – Secret – unterschreibe alles Erwähnte). Wir haben 7 Szenarien in diesem Blog und ich werde die JWT Editor-Erweiterung verwenden, um von hier aus mehr darüber zu erfahren

  • Das erste Szenario: (nur mit der Nutzlast spielen)
Bild für Das erste Szenario
  • das zweite szenario: (spiel mit der nutzlast & „alg“ )

{
    "alg": "none",
    "typ": "JWT"
}

Testen Sie mithilfe von Hashcat auf Brute-Forcing-Geheimschlüssel, verwenden Sie dann die Ausgabe und codieren Sie sie, klicken Sie auf „ Neuer symmetrischer Schlüssel“ und ersetzen Sie den generierten Wert für die kEigenschaft durch das Base64-codierte Geheimnis.

hashcat -a 0 -m 16500 <jwt> <wordlist>

Testen Sie das Einfügen von selbstsignierten JWTs über den jwkParameter , indem Sie auf New RSA Key & Generate klicken und jwkdann mit Embedded JWK angreifen

  • Das fünfte Szenario: (mit dem Header über externen Server spielen)

{
    "keys": [

    ]
}

  • Das sechste Szenario:
  • Das siebte Szenario:

Ressourcen