Ce portail documentaire d'entreprise implémente l'inclusion dynamique de fichiers avec des filtres de sécurité pour empêcher l'accès non autorisé, mais les attaquants expérimentés savent que les protections basiques ont souvent des faiblesses. 🛡️ Le système bloque la traversée de répertoires et l'inclusion de fichiers PHP, mais qu'en est-il des autres fichiers sensibles qui pourraient se cacher dans le répertoire web ? 💡 Maîtrisez l'art du contournement de filtres et découvrez comment extraire des identifiants d'authentification depuis des zones protégées ! 🔓
Les vulnérabilités Local File Inclusion (LFI) comptent parmi les failles de sécurité d'applications web les plus dangereuses, permettant aux attaquants de lire des fichiers sensibles depuis le système de fichiers du serveur. Lorsque les développeurs implémentent des filtres de sécurité basiques pour bloquer les attaques LFI, les testeurs qualifiés doivent comprendre les techniques de contournement de filtres pour vérifier si les protections sont véritablement efficaces. Cette progression du LFI basique au contournement de filtres représente un scénario réaliste rencontré lors de tests d'intrusion professionnels.
De nombreuses applications web implémentent des filtres d'entrée qui vérifient les schémas d'attaque courants comme "../" (traversée de répertoires) ou des extensions de fichier spécifiques. Cependant, ces filtres sont souvent implémentés comme de simples correspondances de chaînes ou des expressions régulières basiques qui peuvent être contournées. Les techniques de contournement courantes incluent l'encodage URL (..%2F), le double encodage URL (..%252F), l'utilisation de séparateurs de chemin alternatifs, l'injection de byte nul (%00 sur les anciennes versions PHP) et la troncature de chemin. Chaque technique exploite un écart entre ce que le filtre vérifie et ce que le système de fichiers du serveur traite réellement.
L'une des cibles les plus précieuses pour les attaques LFI est le système d'authentification d'Apache. Le fichier .htaccess contrôle la configuration au niveau du répertoire, y compris les exigences d'authentification, tandis que .htpasswd stocke les paires nom d'utilisateur et hash de mot de passe. Si un attaquant peut lire le fichier .htpasswd via LFI, il obtient des hashes de mots de passe qui peuvent être cassés hors ligne avec des outils comme John the Ripper ou Hashcat. Ces identifiants fournissent souvent l'accès aux zones administratives protégées de l'application.
Une prévention efficace du LFI nécessite plusieurs couches de défense. La validation des entrées devrait utiliser des listes d'autorisation plutôt que des listes de blocage - n'autorisant que les noms de fichiers connus et valides plutôt que d'essayer de bloquer tous les schémas malveillants. La canonicalisation du chemin avant les opérations sur les fichiers empêche les contournements par traversée. Les applications PHP devraient utiliser realpath() pour résoudre le chemin complet et vérifier qu'il se trouve dans le répertoire attendu. Des permissions de fichier appropriées et l'exécution des serveurs web avec des privilèges minimaux limitent l'impact d'une exploitation réussie.
Créez un compte gratuit et pratiquez la cybersécurité.
Créez un compte gratuit pour démarrer votre propre serveur dédié, soumettre des flags et gagner des XP au classement.
Commencer à Hacker GratuitementLabs qui partagent des compétences similaires
Choisissez comment vous voulez commencer
Connectez-vous à votre compte