Le ShaktiCTF est un CaptureTheFlag orienté débutants et qui avait pour double vocation de pousser les femmes à se lancer dans l’infosec et faire monter les CTFs en Inde ! Malgré ceci, l’évènement était ouvert à tous, je me suis donc lancé !

Voici pour les français qui ont participé un write-up des trois premiers challenges web de Shakti !

Find the Flag

Premier challenge très simple. On se rend compte que l’input affiché à l’utilisateur est envoyé tel quel en commande bash. On voit que l’input est entré en paramètre GET sur notre URL.

On tente donc un payload tout simple:

?test=flag.txt;cat flag.txt

Et bingo. Le challenge était catégorisé facile, ça reste dans nos cordes !

Ultimate Spiderman Fan

On arrive sur une petite boutique de Goodies Spiderman. En explorant un peu et en cliquant sur l’achat d’un item, on arrive sur la page suivante:

Shakti - Spiderman

Un token ? Parfait, regardons nos cookies ! Nous y trouvons l’item suivant:

eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJhbW91bnQiOiAxMjAwfQ.Q1Sl_HufXg23wd-hKuo_aQwVK7RN4BUWENy2KYWNeaw

Si on le décode, on obtient une information intéressante:

Déchiffrement du token

Une information très simple: le prix de notre item ! On retourne sur notre page d’accueil et on voit ceci en bas:

Spider Surprise

Nous voulons désormais l’acquérir ! On connait le prix, il ne reste qu’à crafter un token ! On va prendre le pari de ne pas mettre d’algorithme, je fais donc rapidement le script suivant:

const jwt = require('jsonwebtoken');

const payload = {
  "amount": 5000
};

const jwtToken = jwt.sign(payload, '', { algorithm: 'none' });

console.log(jwtToken);

On stocke le token dans nos cookies, on visite le /checkout comme demandé. Et victoire !!

Delicious

On arrive sur une simple page avec des cookies. Rien dans le code. Évidemment quelque chose dans les cookies:

eyJhZG1pbiI6MH0%3D

Ça ressemble à s’y méprendre à du base64 en urlencode ! On décode tout ça et on obtient:

{"admin":0}

On modifie le 0 par un 1, on encode en base64, on encode en url, on stocke dans les cookies. Et on refresh !

Conclusion

Pour être honnête, j’ai trouvé ceux que j’ai réussi un peu trop simples (surtout comparé au GCC). Et le suivant (« Filters ») j’ai bloqué dessus, donc je suis un peu resté sur ma faim ! Mais je me suis bien amusé, et surtout ça m’a échauffé pour le CTF de HTB du lendemain !!