Solution de alexCoding42 pour Babel Web

intro web

1 décembre 2023

Table des matières

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 sourcesur 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>