snow-crash/level09/Ressources/solution

40 lines
1.6 KiB
Plaintext
Raw Blame History

dans le home de level09 il y a 2 fichier appartenant a flag09:
-rwsr-sr-x 1 flag09 level09 7640 Mar 5 2016 level09*
----r--r-- 1 flag09 level09 26 Mar 5 2016 token
level09 est un executable qui prend en argument une chaine de charactere et qui renvoie une rotation incrementale des charactere:
$ ./level09 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
> ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
$ ./level09 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
> BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7E>
$ cat token
> f4kmm6p|=<3D>p<EFBFBD>n<EFBFBD><6E>DB<44>Du{<7B><>
Le fichier token comptient des charactere non imprimable.
On peut donc se douter qu'il faudrait opperer la rotatation incrementale inverse sur le comptenue du fichier token.
Car le token est deja passer par cet rotation incrementale
on recupere la valeur de hexdump en hexadecimal pour du code en C
$ hexdump -C token | cut -c 9- | cut -f1 -d'|' | tr '\n' ' ' | xargs echo "" | sed "s/ /, 0x/g" | sed "s/ //g" | xargs -I {} echo "{" {} "}"
> { ,0x66,0x34,0x6b,0x6d,0x6d,0x36,0x70,0x7c,0x3d,0x82,0x7f,0x70,0x82,0x6e,0x83,0x82,0x44,0x42,0x83,0x44,0x75,0x7b,0x7f,0x8c,0x89,0x0a }
Il faut juste enlever la premier virgule pour pouvoir initialiser un tableau static
On a fait un fichier en C qui precede a appliquer l'inverse de la roation incrementale
# sur notre machine:
$ gcc Ressources/decode.c && ./a.out
> f3iji1ju5yuevaus41q1afiuq<75>
le dernier charactere corespond au "\n"
on peut donc se connecter au compte flag09 puis recuperer le mot de passe du level10