Writeups
  • ℹ️Infos
  • 🗓️2021
    • DvCTF (to join DaVinciCode)
      • Crypto
        • Baby RSA
        • Ressaye
        • Unbreakable encryption
      • Forensics
        • Broken Portrait
        • Russian Dolls
        • Sus USB
      • Misc
        • Jus de Flag
        • Welcome
      • OSINT
        • Absolutely Nuts
      • Progra
        • Snoop's Mission
      • Reverse
        • Baby Reverse
        • Basic Cracking
        • Code Pyn
      • Steganography
        • Colorful Code
        • Hurt Your Eyes
        • Orchestra of Flags
        • Tyger
      • Web
        • Have I Been Pwned
        • What's Up ?
  • 🗓️2022
    • DvCTF 2022
      • Crypto
        • Cwryptographic Owacle
        • Secure Or Not Secure
        • small weiner
      • Forensics
        • Very Bad Script
      • Misc
        • Data Leak
        • Going postal
        • The Hacker Man
      • OSINT
        • Elon Musk
        • Monkeey
        • Painting Spot
        • Welcome to the DaVinciCTF!
      • Pentest
        • DaVinci's Playlist : Part 1
        • DaVinci's Playlist : Part 2.5
        • DaVinci's Playlist : Part 2
      • Programming
        • Heaven's Gate
        • Sudoku
        • TicTacToe
      • Reverse
        • CryptoVault
        • Mine Game
        • Obfuscated
        • Peripheral Interface Controller XVI
      • Steganography
        • ICMP
        • The Arts of Details
        • Treasure
      • Warmup
        • EBG13
        • FrenchFlag
        • MP3
        • QmFzZTY0
        • RSA
        • Welcome
      • Web
        • CyberStreak v1.0
        • 🎵
    • picoCTF 2022
      • Challs WU
    • @HackDay - Qualifications
      • Crypto
        • Francis Bacon
        • Francs Maçons
        • Rotate-me!
        • Un message codé ?
      • Forensics
        • bad_timing_for_reversing
      • Hardware
        • Cubik'cipher
        • WebSDR
      • Reverse
        • Calling Conventions
        • Memory Investigation
      • Steganography
        • I can make pictures
        • J'ai perdu le flag :(
        • Pokémons
        • Un coup de maître
        • Un logo cachotier
      • Web
        • GIT!
        • Part. 1 - Uploads
        • Part. 2 - Old md5
        • Part. 3 - sudo python
    • 404CTF
      • Crypto
        • Un simple oracle [1/2]
        • Un simple oracle [2/2]
      • Misc
        • Je suis une théière
        • Pierre-papier-Hallebarde
        • GoGOLFplex
      • OSINT
        • À l'aube d'un échange
        • Collaborateur suspect
        • Equipement désuet
      • Reverse
        • Mot de passe ?
      • Steganography
        • La plume à la main
        • PNG : Un logo obèse [1/4]
        • PNG : Drôles de chimères [2/4]
        • Toujours obèse [3/4]
      • Web
        • Fiché JS
        • Le braquage
        • Du gâteau
        • En construction !
    • Operation Kernel
      • Crypto
        • Scytale
      • Forensics
        • Research Paper
        • Excel Confidential
      • Reverse
        • CryptoLocker
        • What_If_CryptoLocker
      • Social Engineering
        • Pour vivre secure vivons caché
        • Pour vivre secure vivons caché Part 2
      • Stegano
        • AudioSpectre
        • Datacenter
        • Takazume
      • WEB
        • Research paper blog
        • SQL Project 1
        • SQL Project 2
        • SQL Project 3
        • Tenue de soirée requise
  • 🗓️2023
    • 404CTF 2023
      • Résultats
      • Analyse forensique
        • Pêche au livre
        • Le Mystère du roman d'amour
        • Les Mystères du cluster de la Comtesse de Ségur [1/2]
        • Lettres volatiles
        • Note de bas de page
      • Cloud
        • Le Sot
        • Le Cluster de Madame Bovary
        • Harpagon et le magot
        • Les nuages menaçants 1/3
        • Les nuages menaçants 2/3
      • Cryptanalyse
        • Recette
        • ASCON Marchombre
      • Divers
        • Bienvenue
        • Exemple de connexion à distance
        • Discord
        • À vos plumes !
      • Exploitation de binaires
        • Je veux la lune !
      • Programmation
        • L'Inondation
        • Des mots, des mots, des mots
      • Radio-Fréquence
        • Navi
        • Avez-vous vu les cascades du hérisson ?
        • Le Plombier du câble
        • Ballistic Missile Submarine
      • Renseignement en sources ouvertes
        • Le Tour de France
        • Les OSINTables [1/3]
        • Un vol ?
        • L'âme d'un poète et le coeur d'une femme [1/4]
        • L'âme d'un poète et le coeur d'une femme [2/4]
        • L'âme d'un poète et le coeur d'une femme [3/4]
        • L'âme d'un poète et le coeur d'une femme [4/4]
      • Rétro Ingénierie
        • Le Divin Crackme
        • L'Inspiration en images
      • Sécurité Matérielle
        • Un courrier suspect
        • Un réveil difficile
      • Stéganographie
        • Odobenus Rosmarus
        • L'Œuvre
        • Les Félicitations
        • En Profondeur
        • Le Rouge et le vert, avec un soupçon de bleu
      • Web
        • Le Loup et le renard
        • L'Académie du détail
        • La Vie Française
        • Fuite en 1791
        • L'Épistolaire moderne
        • Chanson d'Inde
      • Web3
        • Art
        • L'Antiquaire, tête en l'air
Powered by GitBook
On this page

Was this helpful?

  1. 2023
  2. 404CTF 2023
  3. Web

L'Académie du détail

PreviousLe Loup et le renardNextLa Vie Française

Last updated 1 year ago

Was this helpful?

Catégorie: Web - Difficulté: Facile

Description:

Lien :

Solution:

Pour ce challenge de web, nous arrivons sur une page d'accueil avec un carrousel, beaucoup de mots et un espace de connexion.

Nous pouvons dans un premier temps regarder le code source de la page mais rien d'intéressant à l'intérieur. La partie qui peut être très intéréssante est celle de la page de connexion :

Pour ce connecter, il faut un nom d'utilisateur et un mot de passe (logique). On essaye tout de suite le couple admin/amin pour voir si l'administrateur du site ne serait pas trop bête. Résultat :

Nous pouvons tester avec d'autres mots de passe génériques mais toujours cette même erreur. Passons à un autre utilisateur (test ou user ou pseudo). Quand nous testons, peu importe le mot de passe donné, nous parvenons à nous connecter :

Une nouvelle page a été débloquée : "Liste des membres". Si nous souhaitons y accéder, voici le résultat que nous avons :

Le résultat n'est toujours pas convaincant... Il faut donc trouver une solution a tout ce bazar.

La partie qui nous intéresse est celle de la connexion. En regardant de plus près la requête envoyée, nous voyons que l'utilisateur et le mot de passe sont passés en paramètres :

En continuant, nous obtenons un token JWT :

Nous constatons que quoi que nous mettons dans le name et le pass de la requête POST nous parvenons à nous connecter sans soucis, sauf quand name à pour valeur admin. La dernière chose qui reste à étudier est donc ce fameux token JWT.

Si nous changeons le username avec la valeur admin et que nous renvoyons le token modifié pour continuer, même erreur que précédemment... Il y a donc un autre paramètre à modifier dans ce token pour régler le souci.

En regardant les différentes vulnérabilités des tokens JWT, nous voyons que le fait de passer l'algorithme à null dans le header était connue dans les CTF. Nous pouvons donc faire ça. Avec jwt.io, il est compliqué de le faire alors nous allons le faire à la main avec un convertisseur en B64 :

Le payload et la signature peuvent directement être modifiés sur le site jwt.io.

Maintenant, nous disposons des 3 parties du token : - Le header : eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0 ({"alg":"none","typ":"JWT"}) - Le payload : eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNjg1NjM2NjIwfQ ({"username":"admin","exp":1685636620}) - La signature : 4ZU-NSZRL2L9Pm_wgNJiSComu9tHCu5z_2apAlvmdZc nous pouvons reconstituer le token JWT complet comme ici : eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNjg1NjM2NjIwfQ.4ZU-NSZRL2L9Pm_wgNJiSComu9tHCu5z_2apAlvmdZc

Et voilà le résultat :

🚩 FLAG
404CTF{JWT_M41_1MP13M3N73_=L35_Pr0813M35}

En allant sur et en mettant le token récupéré, nous pouvons voir les infos remplies lors de l'envoi du formulaire de connexion :

Une fois le token reconstitué sur , nous allons le changer directement au moment de la requête à l'aide du proxy de Burp Suite :

🗓️
jwt.io
jwt.io
https://academie.challenges.404ctf.fr/