snow-crash/level06/Ressources/solution

20 lines
862 B
Plaintext
Raw Normal View History

On a vu qu'il y avait un script php qui est execute par le binaire level06.
Cet executable prend en argument un fichier et transmet le contenue du fichier au script php.
Ce script php effectue plusieurs regex.
2021-01-27 14:34:35 +00:00
On a telecharge ce script pour l'indenter correctement et pouvoir un peu mieux le lire malgre les regex...
2021-01-27 14:34:35 +00:00
Apres quelque recherche sur les regex, preg_replace et /e en php, on se rend compte que la ligne :
$a = preg_replace("/(\[x (.*)\])/e", "y(\"\\2\")", $a);
2021-01-27 14:34:35 +00:00
est vulnerable, en effet le modifier /e fait que le deuxieme argument de preg_replace sera interprete comme une expression php
2021-01-27 14:34:35 +00:00
on remarque qu'on peut utiliser une commande shell en php avec shell_exec, il suffit donc d'entrer l'expression php
shell_exec(getflag)
dans la regex
2021-01-27 14:34:35 +00:00
il faut un ficher avec
[x {${shell_exec(getflag)}}]
puis rentrer ce fichier en argument du binaire level06