Bonjour,
Nous allons
aujourd'hui voir un niveau un peu plus complexe qui va demandé
d'avoir des notions de PHP. Donc avant tout je vous conseil
d'apprendre à comprendre au minimum les bases puisqu'elles seront
utile ici.
Voyons ce qu'il faut
faire ici :
There’s a C setuid wrapper for some vulnerable PHP code…
To do this level, log in as the level09 account with the password level09. Files for this level can be found in /home/flag09.
On voit devoir donc
comprendre le code PHP qui nous est donné ici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php function spam($email) { $email = preg_replace("/\./", " dot ", $email); $email = preg_replace("/@/", " AT ", $email); return $email; } function markup($filename, $use_me) { $contents = file_get_contents($filename); $contents = preg_replace("/(\[email (.*)\])/e", "spam(\"\\2\")", $contents); $contents = preg_replace("/\[/", "<", $contents); $contents = preg_replace("/\]/", ">", $contents); return $contents; } $output = markup($argv[1], $argv[2]); print $output; ?> |
Le premier truc que
l'on peut remarquer est l'utilisation de deux fonctions. La première
fonction sera appelé par la seconde qui elle même sera appelé par
les arguments passé au lancement du script . On faire un
listing voir s'il y a un truc qu'on aurait pu ne pas voir :
Donc rien de magique
ici à faire tout est indiqué. On va donc devoir trouver une manière
d'exploiter le programme normalement. On va pour le moment
simplement lancer le programme pour voir s'il fait ce qu'on pense :
Rien de bien farfelu
on va donc tenter de comprendre ce qui n'est pas normal dans le code
que l'on pourrait exploiter. Nous allons regarder une ligne en
particulier puisqu'il s’agit simplement de la ligne qui va call la
première fonction de notre script :
Aucun commentaire:
Enregistrer un commentaire