40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
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
|
||
|
||
|
||
|