
JWT Key Confusion PoC (CVE-2015-9235) geschrieben für die Hack the Box-Challenge - Under Construction
Geschrieben für die Hack-the-Box-Challenges - Under Construction und Secret
Beide enthaltenen Skripte führen einen Java-Web-Token-Key-Confusion-Angriff (CVE-2015-9235) aus.
Um den Angriff auszuführen, muss der Angreifer den öffentlichen Schlüssel kennen, den der Server zur Verifizierung der Signatur verwendet, und der Server muss für die Verwendung des HS256-Algorithmus konfiguriert sein. Da HS256 ein symmetrischer Schlüsselalgorithmus ist (derselbe Schlüssel wird zum Signieren und Verifizieren der Nachricht verwendet), können wir den öffentlichen Schlüssel verwenden, um unseren manipulierten Token zu signieren.
Da der Webserver den öffentlichen Schlüssel kennt, kann er den manipulierten Token verifizieren, wenn er ihn empfängt.

python3 jwt-9235.py [-h] [token_location] [claim_key] [claim_value]
positional arguments:
token_location location of JWT token (must include 'pk' payload)
claim_key payload claim to target
claim_value new claim value
optional arguments:
-h, --help show this help message and exit
Wenn keine Argumente angegeben werden, sucht die Anwendung nach einer Token-Datei ./token, zielt auf den username-Anspruch ab und ersetzt den Anspruchswert durch ‘ or 1=1;–
pip install hashlib hmac base64 json argparse colorama