1. Introduction aux failles d’inclusion de fichiers (LFI/RFI)

Avant d’exploiter les failles LFI et RFI, il faut comprendre ce qu’elles sont, pourquoi elles existent, et dans quel cadre légal nous pouvons les étudier. Cette unité pose les fondations conceptuelles du cours.

Qu’est-ce qu’une faille d’inclusion de fichier ?

Une faille d’inclusion survient quand une application web utilise une entrée utilisateur non validée pour construire dynamiquement un chemin de fichier à inclure. En PHP, les fonctions include(), require(), include_once() et require_once() sont les vecteurs principaux.

// Code vulnerable classique
$page = $_GET['page'];
include($page . '.php'); // Dangereux !

Si l’utilisateur envoie ?page=contact, le fichier contact.php est inclus normalement. Mais sans validation, un attaquant peut envoyer ?page=../../../../etc/passwd et lire des fichiers sensibles.

LFI vs RFI

Local File Inclusion (LFI)

La LFI permet d’inclure des fichiers présents localement sur le serveur. L’attaquant ne choisit que le chemin — le fichier doit exister sur la machine. Cas d’usage : lire /etc/passwd, des fichiers de configuration, les logs du serveur.

Remote File Inclusion (RFI)

La RFI est plus dangereuse : elle permet d’inclure un fichier hébergé sur un serveur distant contrôlé par l’attaquant. Si un fichier PHP malveillant est inclus et exécuté, c’est une exécution de code à distance (RCE). La RFI nécessite que allow_url_include = On soit configuré dans php.ini.

Prévalence et impact

Les failles d’inclusion figurent régulièrement dans le Top 10 OWASP. Elles touchent principalement les applications PHP legacy et peuvent conduire à :

  • Lecture de fichiers sensibles : /etc/passwd, wp-config.php, clés SSH
  • Exécution de code arbitraire via log poisoning ou wrappers PHP
  • Prise de contrôle complète du serveur
  • Exfiltration de données utilisateurs

Cadre légal en France

L’article 323-1 du Code pénal punit l’accès frauduleux à un système informatique de 2 ans d’emprisonnement et 60 000 € d’amende. Ne pratiquez ces techniques que sur des systèmes que vous possédez ou avec une autorisation écrite explicite.

Environnements de test légaux

  • DVWA (Damn Vulnerable Web Application) — installation Docker en 2 minutes
  • WebGoat — plateforme OWASP dédiée à la sécurité web
  • bWAPP — 100+ failles web dans une seule application
  • TryHackMe / HackTheBox — rooms CTF avec machines LFI légales
# Lancer DVWA avec Docker
docker pull vulnerables/web-dvwa
docker run --rm -it -p 80:80 vulnerables/web-dvwa
Points clés :

  • LFI = inclusion de fichiers locaux au serveur ; RFI = inclusion de fichiers distants
  • include() et require() avec entrée utilisateur non filtrée = faille d’inclusion
  • Pratiquez uniquement sur des environnements légaux : DVWA, bWAPP, CTF
SEE ALL Add a note
YOU
Add your Comment