# Pirate life for me: ## Description: La vie d’un peerat c’est entre autres la chasse au trésor, après l’apprentissage et le fun ! Cette chasse commence ici : host : 170.75.166.191 user : peerat passwd : Pourras-tu suivre les indices, surmonter les challenges et trouver le trésor ? ## Solution: On a la paire login/pass (le pass possède un event style hover) d'une session ssh: peerat/peeratSpiritNeverDie!1678 ainsi que l'ip de l'host Nous pouvons nous y connecter: `$ ssh peerat@170.75.166.191` nous arrivons dans le home directory de l'user ssh nous listons les fichiers : ```$ ls``` nous trouvons un fichier hint.md nous faisons: ```$ cat hint.md``` Il y a un couple login/pass d'une autre session ssh nous faisons : ```$ ssh -p 8888 peerat1@localhost``` Dans le doute on regarde s'il y a d'autre indice : ```$ ls``` ```$ cat hint.md``` L'indice nous dit qu'il faut s'authentifier à l'aide d'une clé ssh qui est dans l'home directory nous nous y connectons avec : ```$ ssh -i ./id-rsa peerat2@ssh2``` Nous pouvons faire la m^eme chose à chaque nouvelle connection ssh. il est stipulé qu'il faut se connecter au ssh sur localhost de la première session ssh ```$ ssh -p 3333 peerat4@localhost``` Nous voici devant un "quiz" Nous demandant le prénom de Barlow: (Je l'ai trouvé gr^ace à l'image que j'avais download pour un autre chall) Prénom = philipz Après il nous demande le nom du repo qui possède le plus de commit (le lien est sur le portail du ctf): peer-at-code-backend Après il nous demande l'url avec lequel on s'est inscrit : Celui qu'il faut utiliser est l'url du formulaire d'inscription à l'event : https://framaforms.org/inscription-team-battles-info-secu-1679950176 on a un indice nous indiquant qu'il y a un serveur web écoutant sur le port 7777 Et une clé/mdp : peeratFunziesPassword On accède au site en entrant l'ip + le port 7777 dans la barre de recherche de notre navigateur favori Il y a un input pour la clé il suffit de l'écrire dedans et d'envoyer J'ai commencé par activer la capture réseau dans l'outil dev de firefox Nous pouvons voir que le script du jeu fait appel à l'api grace à une fonction pour compter les points en analysant le code source du script nous pouvons voir la fonction qui lance la partie qui est playZP() et la fonction qui permet de marquer les points qui est sendstonks() En essayant humainement de faire un maximum de point le jeu nous dit qu'on en a pas assez. J'ai donc essayé de jouer avec js ```js playZP(); for(let i=0; i<1000; i++){ sendStonks(); } ``` Ainsi nous arrivon à la tout dernière étape pour obtenir le flag : Un calcul Nous devons diviser 1945800 par le numéro de port du projector du i32 concaténer avec D_rUN le tout dans le format des flags habituels: Le numéro de port du projecteur : Donc : 1945800 / 3243 = 600 Flag final : pacBcei{600D_rUN}