Une application web PHP gère les opérations de fichiers et les uploads avec des contrôles de sécurité insuffisants. Grâce à une analyse minutieuse des mécanismes d'inclusion de fichiers et des restrictions d'upload, des attaquants qualifiés peuvent transformer des fonctionnalités apparemment inoffensives en vecteurs d'attaque puissants. 🎯 Il est temps de démontrer les techniques d'exploitation de fichiers !
Les vulnérabilités Local File Inclusion (LFI) et d'upload de fichiers non sécurisé sont parmi les failles les plus courantes et dangereuses trouvées dans les applications web PHP. Le LFI permet aux attaquants de lire des fichiers arbitraires du serveur en manipulant les paramètres de chemin de fichier, tandis que les mécanismes d'upload non sécurisés peuvent être exploités pour placer du code malveillant sur le serveur. Combinées, ces vulnérabilités créent une chaîne d'attaque dévastatrice qui progresse de la divulgation d'informations à l'exécution de code à distance et à la compromission complète du système.
Le Local File Inclusion survient lorsqu'une application PHP utilise des entrées contrôlables par l'utilisateur dans des fonctions d'inclusion de fichiers comme include(), require() ou file_get_contents() sans validation appropriée. Un schéma d'URL vulnérable comme page.php?file=about.html peut être exploité en changeant le paramètre en page.php?file=../../../../etc/passwd, utilisant des séquences de traversée de répertoires pour naviguer dans le système de fichiers et lire des fichiers sensibles. Les cibles courantes incluent /etc/passwd pour l'énumération d'utilisateurs, /etc/shadow pour les hashes de mots de passe, les fichiers de configuration d'application contenant des identifiants de base de données, et les fichiers de journaux qui peuvent être empoisonnés pour l'exécution de code.
Les techniques LFI avancées incluent les wrappers de filtre PHP comme php://filter/convert.base64-encode/resource= pour lire le code source PHP, l'injection de byte nul dans les anciennes versions PHP pour contourner l'ajout d'extension, et l'empoisonnement de journaux où du code PHP malveillant est injecté dans les journaux du serveur puis inclus via la vulnérabilité LFI pour obtenir l'exécution de code.
Les vulnérabilités d'upload de fichiers surviennent lorsque les applications échouent à valider correctement les fichiers uploadés. Les techniques de contournement courantes incluent le changement de l'en-tête Content-Type vers un type MIME autorisé, l'utilisation de doubles extensions comme shell.php.jpg, l'exploitation de bytes nuls dans les noms de fichiers, et l'upload de fichiers avec des extensions PHP alternatives comme .phtml, .php5 ou .pht. Une fois qu'un web shell est uploadé avec succès, l'attaquant peut exécuter des commandes, énumérer le serveur et pivoter vers d'autres systèmes.
La prévention nécessite la validation des entrées utilisant des listes d'autorisation pour les paramètres d'inclusion de fichiers, le stockage des uploads en dehors de la racine web, le renommage des fichiers uploadés avec des noms aléatoires, la validation du contenu des fichiers plutôt que des seules extensions, et l'implémentation de permissions de fichier appropriées. Les pare-feu d'applications web peuvent détecter les schémas LFI courants mais ne devraient pas être la seule défense.
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