diff --git a/a_ski_???.md b/a_ski_???.md new file mode 100644 index 0000000..c9d5f93 --- /dev/null +++ b/a_ski_???.md @@ -0,0 +1,22 @@ +# A ski ???: +## Description: +Cet executable peut te donner le flag, + + +sauras-tu lui demander correctement ? +## Solution : +Nous téléchargeons l'executable. +Nous le rendons executable en effectuant la commande: +```$ chmod +x slope ``` +Nous pouvons l'executer avec : +```$ ./slope``` +Il nous retourne "Do you need help ?" +Donc il suffit de faire: +```$ ./slope --help``` +Il nous retourne alors des chiffres qu'on doit convertir en lettre: + + +on peut utiliser https://cyberchef.org + + +flag : pacBcei{C0MM4ND 11N3 4r6UM3N75 C0U1D H31P} \ No newline at end of file diff --git a/first_encoded_flag.md b/first_encoded_flag.md new file mode 100644 index 0000000..5f91b9b --- /dev/null +++ b/first_encoded_flag.md @@ -0,0 +1,19 @@ +# First encoded Flag: + +## Description: +Même principe que dans l'exercice précédent, +mais cette fois le flag n'est plus lisible directement. + + +Et si tu essayais de décoder le contenu du fichier ? + +## Solution: +Le nom du challenge est assez évocateur. + +Et l'indice (style hover) qui nous indique clairement l'encodage utilisé + +Le texte est encodé en base64. J'ai utilisé https://cyberchef.org +(que je recommande) + +Nous obtenons directement le flag: + diff --git a/i_love_js.md b/i_love_js.md new file mode 100644 index 0000000..5bc23dd --- /dev/null +++ b/i_love_js.md @@ -0,0 +1,19 @@ +# I love JS + +## Description: +Je suis vraiment fan de JS et je maîtrise ce langage comme personne, + +pourras-tu trouver le flag dans mon code source ? + +## Solution: + +Nous arrivons face à ceci : + + +(ça ressemble à de l'obfuscation js si quelqu'un sait exactement ce que c'est je suis preneur) +Je décide donc de l'exécuter dans la console developpeur de firefox + +Le script js affiche une pop-up avec le flag: + + +flag : pacBcei{N0W 1 11K3 H31M0 J4V45Cr1P7 C0Ur535} \ No newline at end of file diff --git a/min_and_max.md b/min_and_max.md new file mode 100644 index 0000000..f99ea5f --- /dev/null +++ b/min_and_max.md @@ -0,0 +1,36 @@ +# Min and Max: + +## Description: +Voici un fichier avec le nombre de requêtes +que j'effectue par jour vers le cyberespace. + + + + +Je suis intéressé de connaitre le résultat de la soustraction entre le maximum et le minimum. + +## Solution: +Nous pouvons utiliser le module requests de python pour aller plus vite mais lorsque je l'ai fait je n'y ai pas pensé: + +```python +def minimum(): + maxi = float("inf") + with open('web-client/ui.txt','r') as file: + a = file.readlines() + for i in a: + maxi = min(maxi,int(i)) + return maxi + + +def maximum(): + mini = float("-inf") + with open('web-client/ui.txt', 'r') as file: + b = file.readlines() + for i in b: + mini = max(mini, int(i)) + return mini + +print(maximum()-minimum()) +``` + +Le "flag" est : 99983963 \ No newline at end of file diff --git a/pirate_life_for_me.md b/pirate_life_for_me.md new file mode 100644 index 0000000..3005960 --- /dev/null +++ b/pirate_life_for_me.md @@ -0,0 +1,113 @@ +# 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} \ No newline at end of file diff --git a/rockyou.txt.md b/rockyou.txt.md new file mode 100644 index 0000000..2d04dec --- /dev/null +++ b/rockyou.txt.md @@ -0,0 +1,35 @@ +# Rockyou.txt +## Description +Voici une archive zip, + + +pourras-tu découvrir le mot de passe ? +## Solution: +J'ai utilisé ma vm kali. +J'ai d'abord executé zip2john pour dump le hash du fichier zip: + +```$ zip2john rotUltimateQuestionOfLife.zip > hash.txt``` + +J'ai du modifié le dump pour n'avoir que le hash: + +Ensuite on peut utiliser hashcat pour cracker le hash: + +```$ hashcat -a 0 -m 17210 hash.txt /usr/share/wordlists/rockyou.txt``` + +- Le paramètre -a permet de définir l'attaque par dictionnaire; + +- Le paramètre -m permet de définir le type de hash qu'on souhaite cracké; + +- hash.txt est le hash qu'on souhaite cracké + /usr/share/wordlists/rockyou.txt est la wordlist utilisée (nom du chall). +### source : https://hashcat.net/wiki/doku.php?id=example_hashes + + +Le mot de passe de l'archive est cracké le mot de passe est : 1iwantacookie. + + + +Nous pouvons déverouiller l'archive avec le mot de passe seulement le flag est chiffré avec le chiffrement césar. J'ai bruteforce pour la rotation gr^ace à https://cyberchef.org: + + +flag : pacBcei{8r4V0_P0Ur_C3773_4774QU3_P4r_D1C710NN41r3}. diff --git a/secureweb_1_-_html.md b/secureweb_1_-_html.md new file mode 100644 index 0000000..b09ff31 --- /dev/null +++ b/secureweb_1_-_html.md @@ -0,0 +1,14 @@ +# SecureWeb 1 - HTML: +## Description: +Dans cette série de 4 puzzles "SecureWeb X", il a 4 flags à trouver (un par puzzle) + +Celui-ci est assez facile + +Pourras-tu trouver les 4 sur ce site ? +Indique ici le premier. + +## Résolution: +Dès la redirection efféctuée j'utilise le raccourci ctrl+u pour voir le code source de la page je descend et je vois ceci : + +Je reconnais l'url encoding des "{}" qui sont %7B et %7D +Nous pouvons déterminer le flag : pacBcei{516N41H1DD3N} \ No newline at end of file diff --git a/some_others_details.md b/some_others_details.md new file mode 100644 index 0000000..254d309 --- /dev/null +++ b/some_others_details.md @@ -0,0 +1,22 @@ +# Some others details +## Description: +Ici j'ai utilisé une autre manière de cacher des infos dans une image. + + +Pourras-tu trouver le flag ? +## Solution: + +J'ai utilisé ce site pour lire les données exifs: +https://exifinfo.org + + + +Une valeur dans le champs rights des données xmp attire mon oeil: + +cGFjQmNlaXsxM19EMTQ4MTNfNTNfN3IwVVYzX0Q0TjVfMTM1X0QzNzQxMTV9 + +Je décide donc d'utiliser le décodage b64 de https://cyberchef.org + + + +Nous obtenons le flag : pacBcei{13_D14813_53_7r0UV3_D4N5_135_D374115} \ No newline at end of file diff --git a/unicode.md b/unicode.md new file mode 100644 index 0000000..2ba02f0 --- /dev/null +++ b/unicode.md @@ -0,0 +1,19 @@ +# Unicode: +## Description: + +Un dernier petit exercice sur ce fichier avant de passer aux choses sérieuses... + +Si tu ne gardes que les lettres majuscules, quelle est la chaine qu'il te reste ? + +## Solution: + +```python +with open('ui.txt','r') as file: + flag = '' + for i in file.read(): + if i.isupper(): + flag +=i + print(flag) +``` + +Nous avons donc le flag qui est : UPJPBHMBTGHCHJMNABTPCICÉUNTCSOOOESCALRWEOIMASVVMJDGAVVNJVLVNVLNGTVCVVVVBLNCSNCLNNNLINNNLRONMAÉUCJWMMTBCVPDIECAFRSIÉUPVACDLCINNPDSPCTD \ No newline at end of file diff --git a/what's_this_encoding.md b/what's_this_encoding.md new file mode 100644 index 0000000..9e09329 --- /dev/null +++ b/what's_this_encoding.md @@ -0,0 +1,19 @@ +# What's this encoding: + +## Description: + +Cette fois-ci, je ne te donne pas le nom de l'algorithme qui m'a permis d'encoder le flag. + + + + +A toi de découvrir ce qui se cache dans ce fichier + + +## Solution: + +En voyant le contenut du fichier nous pouvons déterminer que c'est du chiffrement césar: + +L'indice (style hover) nous dit que ce chiffre porte malheur, nous pouvons déterminer le type de ROT que le chiffrement césar a utilisé: + +