Inclusion

Sinks include et require dynamiques où un chemin ou un fragment d'URL contrôlé par l'attaquant choisit ce que l'interpréteur charge, aboutissant à une divulgation ou à l'exécution de code.

1 min de lecturemis à jour le 13 oct. 2026florianamette1 contributeur
Demander à votre assistant (MCP)Modifier sur GitHub

Les failles d'inclusion vivent dans des sinks de type include/require dynamiques, où un paramètre de requête décide quel fichier l'interpréteur charge et exécute.

Du code PHP classique comme include($_GET['page'] . '.php') confie à l'attaquant le contrôle du chemin chargé. Deux directions s'ensuivent. L'inclusion locale pointe le sink vers des fichiers déjà présents sur le serveur : traversée pour lire le source et les secrets, wrappers pour divulguer ou décoder, et astuces d'empoisonnement (logs, /proc, fichiers de session, uploads antérieurs) qui convertissent une primitive de lecture en exécution de code. L'inclusion distante pointe le sink vers une URL hébergée par l'attaquant, de sorte que l'interpréteur récupère et exécute directement du code externe, sous réserve des paramètres d'inclusion d'URL du moteur. Les deux pages couvrent les payloads et les chaînes qui promeuvent une simple lecture de fichier en exécution complète.

Pages#

  • Local : LFI par traversée et wrappers PHP pour la divulgation de source, plus des chaînes d'empoisonnement de log, environ, session et upload qui escaladent une lecture de fichier en exécution de co...
  • Remote : le RFI pointe un sink d'inclusion vers une URL contrôlée par l'attaquant de sorte que l'interpréteur récupère et exécute du code externe, conditionné par allow_url_include et allow_url_fopen.

Outils#

  • LFISuite : détection et exploitation automatisées de LFI.
  • kadimus : scan et exploitation de LFI et RFI.
  • fimap : test automatisé d'inclusion de fichiers locale et distante.
  • Burp Suite : Repeater pour les payloads de traversée, de wrapper et d'inclusion d'URL.

Références#