PHP
Flag: StarHack{LFI?oh_wow_oh_wow}
Challenge
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Avec un outil comme Burp, on peut facilement étudier le traffic web. Ici on peut voir le code source d'index.php
. Dedans, il y a un passage intéressant :
$file = isset($_GET['file']) ? str_replace('../', '', $_GET['file']) : null;
if (isset($file) && !empty($file)) {
try {
if (!file_exists("./$file")) throw new Exception("File not found.");
$content = @file_get_contents("./$file");
if ($content === false) throw new Exception("Failed to read the file.");
echo $content;
Si l'on met le paramètre file dans notre url, on peut lire un fichier. Comme dit dans la description, on peut lire le Dockerfile :

On voit qu'il y a le flag dans /var/www/flag/flag.txt, seulement, le code PHP est censé nous empêcher de remonter dans l'arborescence.
Mais cette sécurité est mal implémentée et les ../
sont retirés une seule fois, ce qui fait que si l'on entre ....//
, le milieu sera retiré, créant un nouveau ../
qui lui ne sera pas filtré.
En va donc chercher le fichier ....//....//....//var/www/flag/flag.txt

Dernière mise à jour
Cet article vous a-t-il été utile ?