Tenue de soirée requise
Last updated
Last updated
Catégorie: WEB - Points: 300 - Difficulté: Simple - Solves: 44 Description: Dans le fichier excel, une cible importante est liée à un lien vers une loterie. Cette loterie permet au gagnant d'accéder à une soirée VIP. Nous supposons que la cible sera présente à cet événement. Nous devons gagner cette loterie afin de pouvoir prendre contact avec elle. Bien commencer : Si nous parvenons à récupérer l'algorithme de génération de la loterie, nous pouvons gagner à coup sûr. Lien : subscription.challenge.operation-kernel.fr
Indice:
Il peut arriver que les développeurs oublient d'enlever un dossier très important du site qui permet d'obtenir la totalité du code source de l'application. Reculer pour mieux sauter est aussi important ici.
Solution: Pour résoudre ce challenge il faut trouver un moyen de récupérer les scripts de cette application web. Comme il est dit dans l'article, un "dossier" n'a pas été enlevé et ce dernier est très important. Cherchons donc de quel dossier il pourrait s'agir et qui contiendrait tout les fichiers du projet.
Dans un premier nous pouvons essayer de faire une énumération de fichiers/dossiers avec ZAP mais cela ne donne pas grand chose. Mais dans l'indice il est également que reculer permet de mieux sauter. Qu'est-ce que cela peut-il bien vouloir dire ? Ah bah oui, plutôt que de chercher dans /public et faut chercher à la racine. Mais à la racine nous avons toujours une 403... Il faut donc continuer à chercher.
Après quelques jours de recherches et le début de l'élaboration des WU pour ce CTF, l'idée est venue toute seule ! Un dossier que personne ne supprime et qui contient les fichiers sources n'est autre qu'un .git. Alors essayons de le prendre comme ça : https://subscription.challenge.operation-kernel.fr/.git/ Ah toujours une 403. Bon du coup il faut faire d'autres recherches pour voir comment obtenir un répertoire .git sans y avoir accès. Avec l'outil GitTools il est très simple de le récupérer et d'avoir tous les fichiers : (Pour télécharger l'arborescence) (Pour télécharger les fichiers et dossiers)
Une fois tout cela télécharger il faudra trouver le code du programme de la loterie.
Nous savons que ce fichier s'appelle game ou du moins la fonction qui est exécutée alors faisons un grep -inR "game" .
pour trouver les fichiers qui pourraient correspondre :
Il n'y a que 4 fichiers potentiellement intéressant mais un a l'air d'avantage suspect comparé aux autres. Il s'agit d'un script GameProcess obfusqué :
Essayons de voir ce que l'on peut faire avec ce dernier une fois dé-obfusqué :
Et en scannant ce QR-Code, le flag est accessible.
Nous voyons qu'il y a une histoire avec la fonction time()
de PHP. Le numéro gagnant est en effet regénéré toutes les 5 secondes. Il faut donc être rapide pour valider.
Mais une fois cette étape terminée (et la plus dure à mon sens), nous arrivons sur la page finale :