Description
Le challenge consiste à trouver un flag sur un site web.
Solution
Une fois qu’on accède au site web depuis un navigateur on remarque de suite qu’il n’est pas sécurisé.
On cherche donc à inspecter le code html de la page et on remarque qu’un lien a été commenté :
<!-- <a href="?source=1">source</a> -->
Un clic droit sur ce commentaire et on clique sur “Modifier en HTML/Edit as HTML” pour décommenter permet de révéler le lien source
sur la page.
Quand on clique sur le lien la page affiche désormais tout le code PHP et HTML. Si on lit le code PHP on voit que le morceau de code suivant @system($_GET['code'])
permet d’exécuter des commandes système directement en passant des valeurs via la variable GET ‘code’.
Il est donc possible d’exploiter une commande en PHP depuis le navigateur, cependant on ne connaît pas les fichiers PHP qui sont présents. Pour obtenir la liste des fichiers .php présents on peut exécuter la commande suivante dans l’URL du navigateur:
http://localhost:8000/?code=ls
On obtient deux fichiers : flag.php
et index.php
C’est flag.php qui nous intéresse, on va donc exécuter une nouvelle commande PHP pour obtenir le contenu de ce fichier. Dans l’URL du navigateur on exécute :
http://localhost:8000/?code=cat%20flag.php
Une page blanche s’affiche mais si on inspecte de nouveaux les éléments HTML dans les outils développeur du navigateur on aperçoit une balise qui contient notre flag :
<pre>
<!--?php
$flag = "FCSC{5d969396bb5592634b31d4f0846d945e4befbb8c470b055ef35c0ac090b9b8b7}";
<pre-->
</pre>