snow-crash/level14/Ressources/Solution

29 lines
1.5 KiB
Plaintext
Raw Permalink Normal View History

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
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.
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.