diff --git a/level09/Ressource/decode.c b/level09/Ressource/decode.c new file mode 100644 index 0000000..6f61eab --- /dev/null +++ b/level09/Ressource/decode.c @@ -0,0 +1,15 @@ +#include "stdio.h" + +int main() +{ + int token[] = {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 }; + int i = 0; + int len = sizeof(token) / sizeof(int); + + for (i = 0; i < len; i++) + { + printf("%c", (token[i] - i)); + } + + printf("\n"); +} diff --git a/level09/Ressource/solution b/level09/Ressource/solution new file mode 100644 index 0000000..442aba7 --- /dev/null +++ b/level09/Ressource/solution @@ -0,0 +1,38 @@ +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{|}~� + +$ cat token +> f4kmm6p|=�p�n��DB�Du{�� + +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� + +le dernier charactere corespond au "\n" + +on peut donc se conecter ayu compte flag09 puis recuperer le mot de passe du level10 + + + diff --git a/level09/flag b/level09/flag new file mode 100644 index 0000000..1dbbfc3 --- /dev/null +++ b/level09/flag @@ -0,0 +1 @@ +s5cAJpM8ev6XHw998pRWG728z