first commit

This commit is contained in:
Mogfrat 2023-04-28 22:25:47 +02:00
parent 6a27a77f89
commit 75a0a3a5cc
10 changed files with 318 additions and 0 deletions

22
a_ski_???.md Normal file
View file

@ -0,0 +1,22 @@
# A ski ???:
## Description:
Cet <a href="https://cdn.peerat.dev/pacXcei0423/slope">executable</a> 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:
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101586906153746552/image.png">
on peut utiliser https://cyberchef.org
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101586708400717854/image.png">
flag : pacBcei{C0MM4ND 11N3 4r6UM3N75 C0U1D H31P}

19
first_encoded_flag.md Normal file
View file

@ -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 <a href='https://cdn.peerat.dev/pacXcei0423/encodedFile'>fichier</a> ?
## 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:
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101559176523690114/image.png">

19
i_love_js.md Normal file
View file

@ -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 <a href="https://cdn.peerat.dev/pacXcei0423/valid.js">code source</a> ?
## Solution:
Nous arrivons face à ceci :
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101576234527363082/image.png">
(ç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:
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101581979352301740/image.png">
flag : pacBcei{N0W 1 11K3 H31M0 J4V45Cr1P7 C0Ur535}

36
min_and_max.md Normal file
View file

@ -0,0 +1,36 @@
# Min and Max:
## Description:
Voici un <a href="https://cdn.peerat.dev/pacXcei0423/requests">fichier</a> 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

113
pirate_life_for_me.md Normal file
View file

@ -0,0 +1,113 @@
# 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```
<img src="">
nous trouvons un fichier hint.md
nous faisons:
```$ cat hint.md```
Il y a un couple login/pass d'une autre session ssh
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101476186997145651/image.png">
nous faisons :
```$ ssh -p 8888 peerat1@localhost```
Dans le doute on regarde s'il y a d'autre indice :
```$ ls```
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101476470775349248/image.png">
```$ 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```
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101477300635189289/image.png">
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
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101478873557909548/image.png">
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()
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101478514626134097/image.png">
En essayant humainement de faire un maximum de point le jeu nous dit qu'on en a pas assez.
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101477814290624562/image.png">
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
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101475812491939870/image.png">
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 :
<img src="https://media.discordapp.net/attachments/1070815344559665194/1101352776644186193/SPOILER_IMG_20230425_073913_822.jpg">
Donc :
1945800 / 3243 = 600
Flag final : pacBcei{600D_rUN}

35
rockyou.txt.md Normal file
View file

@ -0,0 +1,35 @@
# Rockyou.txt
## Description
Voici une <a href="https://cdn.peerat.dev/pacXcei0423/rotUltimateQuestionOfLife.zip">archive zip</a>,
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:
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101599708188786718/image.png">
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.
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101600381550735461/image.png">
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:
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101601585680883744/image.png">
flag : pacBcei{8r4V0_P0Ur_C3773_4774QU3_P4r_D1C710NN41r3}.

14
secureweb_1_-_html.md Normal file
View file

@ -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 <a href="https://www.peerat.dev/">site</a> ?
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 :
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101575152245948469/image.png">
Je reconnais l'url encoding des "{}" qui sont %7B et %7D
Nous pouvons déterminer le flag : pacBcei{516N41H1DD3N}

22
some_others_details.md Normal file
View file

@ -0,0 +1,22 @@
# Some others details
## Description:
Ici j'ai utilisé une autre manière de cacher des infos dans une <a href="https://cdn.peerat.dev/pacXcei0423/profile.png">image</a>.
Pourras-tu trouver le flag ?
## Solution:
J'ai utilisé ce site pour lire les données exifs:
https://exifinfo.org
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101569972964163636/image.png">
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
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101570682749464688/image.png">
Nous obtenons le flag : pacBcei{13_D14813_53_7r0UV3_D4N5_135_D374115}

19
unicode.md Normal file
View file

@ -0,0 +1,19 @@
# Unicode:
## Description:
Un dernier petit exercice sur ce <a href="https://cdn.peerat.dev/pacXcei0423/independance.txt">fichier</a> 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

19
what's_this_encoding.md Normal file
View file

@ -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 <a href="https://cdn.peerat.dev/pacXcei0423/unknownEncoding">fichier</a>
## 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é:
<img src="https://cdn.discordapp.com/attachments/919873849015828510/1101562176570916955/image.png">