17 lines
1.2 KiB
Plaintext
17 lines
1.2 KiB
Plaintext
|
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.
|