From e50885aa3fa7bd36c3a5516e57fc117d9127f8ef Mon Sep 17 00:00:00 2001 From: gbrochar Date: Thu, 28 Jan 2021 18:43:59 +0100 Subject: [PATCH] level14 --- level14/Ressource/Solution | 17 +++++++++++++++++ level14/flag | 1 + 2 files changed, 18 insertions(+) create mode 100644 level14/Ressource/Solution create mode 100644 level14/flag diff --git a/level14/Ressource/Solution b/level14/Ressource/Solution new file mode 100644 index 0000000..320216b --- /dev/null +++ b/level14/Ressource/Solution @@ -0,0 +1,17 @@ +Il n'y avait aucun fichier dans le home du level14, et find / -user flag14 ne trouvait rien non plus, +le seul fichier qu'il restait a explorer etait le binaire de getflag, +on lance un strings dessus et on remarque plein de chaine de caracteres randoms +si on regarde l'exe du level13 on se rend compte que il y a aussi une string aleatoire +et que celle si existe aussi dans getflag, on en deduis donc qu'on pourrait se servir de l'exe +du level13 pour decoder les strings du binaire getflag. + +On modifie le binaire du level13 pour y mettre la premiere chaine de caractere et on voit que +cela donne le flag du level00, c'est donc une bonne piste. +On voit que la derniere chaine de caractere fait 39 caracteres au lieu de 25, on ne peut pas +la mettre dans l'executable, ca segfault. Il faut trouver un moyen de la decouper en 2. + +En entrant aaaaaaaaaaaaaaaaaaaaaaaaa comme chaine, on se rend compte que l'algo de decodage +boucle tout les 6 caracteres, alors on rentre les 25 premier caracteres de la chaine de 39 +puis les 14 derniers decales de 1(pour etre aligne aux 6 caracteres) et on concat les resultats. + +Cela marche et nous donne le mot de passe de flag14, qui est egalement le flag. \ No newline at end of file diff --git a/level14/flag b/level14/flag new file mode 100644 index 0000000..e8aa4cf --- /dev/null +++ b/level14/flag @@ -0,0 +1 @@ +7QiHafiNa3HVozsaXkawuYrTstxbpABHD8CPnHJ