2021-01-28 17:43:59 +00:00
|
|
|
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
|
2021-02-02 18:44:11 +00:00
|
|
|
boucle tout les 6 caracteres:
|
|
|
|
> your token is 13/5-713/5-713/5-713/5-71
|
|
|
|
Alors on rentre les 25 premier caracteres de la chaine de 39
|
2021-01-28 17:43:59 +00:00
|
|
|
puis les 14 derniers decales de 1(pour etre aligne aux 6 caracteres) et on concat les resultats.
|
|
|
|
|
2021-02-02 18:44:11 +00:00
|
|
|
La chaine source du flag est:
|
|
|
|
g <t61:|4_|!@IF.-62FH&G~DCK/Ekrvvdwz?v|
|
|
|
|
|
|
|
|
On rentrera en premier:
|
|
|
|
g <t61:|4_|!@IF.-62FH&G~D
|
|
|
|
|
|
|
|
puis 1 characeter, CK/Ekrvvdwz?v|, puis 10 charactere. Pour plus de lisibiliter en sortie on entrera, les '-' ne font pas partie du token:
|
|
|
|
]CK/Ekrvvdwz?v|YaW][_YaW]
|
|
|
|
|
|
|
|
Cela marche et nous donne le mot de passe de flag14, qui est egalement le flag.
|