write-up-peerat-2023/pirate_life_for_me.md
2023-04-28 22:25:47 +02:00

3.7 KiB
Raw Permalink Blame History

Pirate life for me:

Description:

La vie dun peerat cest entre autres la chasse au trésor, après lapprentissage 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

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}