39 lines
1.6 KiB
Plaintext
39 lines
1.6 KiB
Plaintext
|
dans le home de level09 il y a 9 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
|
|||
|
|
|||
|
$ gcc Ressource/decode.c && ./a.out
|
|||
|
> f3iji1ju5yuevaus41q1afiuq<75>
|
|||
|
|
|||
|
le dernier charactere corespond au "\n"
|
|||
|
|
|||
|
on peut donc se conecter ayu compte flag09 puis recuperer le mot de passe du level10
|
|||
|
|
|||
|
|
|||
|
|