first commit
This commit is contained in:
parent
6a27a77f89
commit
75a0a3a5cc
10 changed files with 318 additions and 0 deletions
22
a_ski_???.md
Normal file
22
a_ski_???.md
Normal 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
19
first_encoded_flag.md
Normal 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
19
i_love_js.md
Normal 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
36
min_and_max.md
Normal 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
113
pirate_life_for_me.md
Normal file
|
@ -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```
|
||||
<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
35
rockyou.txt.md
Normal 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
14
secureweb_1_-_html.md
Normal 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
22
some_others_details.md
Normal 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
19
unicode.md
Normal 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
19
what's_this_encoding.md
Normal 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">
|
Loading…
Add table
Reference in a new issue