404CTF Academie Du Detail

Intro

Premier challenge web du 404, il est l’heure de faire chauffer Burp !

L’énoncé du challenge est le suivant :

Le nez plongé dans votre café noir, vous parcourez d’un rapide coup d’œil la une du journal fraichement paru. L’un des titres vous interpelle : “Mars 1980 : L’opaque secret du nouveau membre de l’Académie Française”.
Vous parcourez alors le journal à la recherche de l’article en question. Il énonce : Après des heures de délibération, les Académiciens ont enfin voté pour le nouveau membre de la grande Académie Française. Mais pour des raisons que tout le monde ignore, son nom demeure secret depuis ce jour. Malgré tous leurs efforts, aucun journaliste n’a réussi a obtenir le moindre indice ou la moindre image.
Interloqué, vous vous rendez compte que l’Académie Française possède un site web. Peut être que la réponse est finalement à portée de tous, voir même plus … !

La fin de l’énoncé, ‘voir même plus’ me fait tiquer au premier abord, on va voir ce que l’on peut en faire

Challenge

Reco

J’attaque donc la reconnaissance en naviguant sur le site et voir ce que font les différents onglets.

A première vue, pas grand chose de dispo sur cette appli web hormis un formulaire de login.

Après quelques tentatives root:root / toto:toto, je remarque que je ne peux pas me connecter admin:admin :

Login

Le compte admin doit donc être intéressant 🧐

Je continue ma reco avec Burp d’ouvert et je vois que la session semble être gérée par un JWT:

Session

Le token en question :

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRvdG8iLCJleHAiOjE2ODY2NTI5MzF9.i93cmUT154dLKt64yX9RM41BVmUiDqjq1iHcnMtwCNA

Je vérifie les infos que me donne ce token une fois déchiffré en base64, voici le résultat :

{“alg”:“HS256”,“typ”:“JWT”}{“username”:“toto”,“exp”:1686652931}ܙDK*޸Q3AVe"!ܜp

Cool ! On progresse, et on va essayer de manipuler ce token

Exploit!

Avant de procéder à l’exploit, je prend le temps de me configurer un plugin JWT pour Burp.

Je cherche des writeups sur le sujet et je tombe rapidement sur un post medium qui explique la démarche.

Un peu à tâtons j’essaye de modifier l’algorithme de chiffrement et l’utilisateur inscrit dans le JWT, directement dans Burp, et pour accéder à la page “Liste des membres” visiblement inaccessible avec un compte toto:toto

J’essaye donc avec le compte admin qui était visiblement interdit d’accès, et je fais sauter l’algorithme de chiffrement

JWT

J’envoie la requête et bingo j’obtiens le flag :

Flag

ReTex

Petit chall web plutôt simple qui permet de s’échauffer, j’ai trouvé qu’il reste intéressant pour se remettre en jambe sur la gestion des JWT et qu’ils peuvent parfois être de très bons copains ! 😈