Démarrez la machine, hackez le système et trouvez les flags cachés pour compléter ce défi et gagner des XP!
La traversée de chemin (aussi connue sous le nom de traversée de répertoire) est une vulnérabilité de sécurité web qui permet aux attaquants de lire des fichiers sur le serveur en dehors du répertoire prévu de l'application web. En manipulant les références de chemin de fichier avec des séquences comme ../, les attaquants peuvent s'échapper de la racine web et accéder à des fichiers système sensibles, au code source de l'application, aux fichiers de configuration contenant des identifiants et à d'autres données critiques stockées sur le serveur.
Les applications web servent fréquemment des fichiers ou incluent du contenu basé sur des paramètres fournis par l'utilisateur. Un schéma vulnérable typique implique une URL comme /view?file=report.pdf où l'application construit un chemin de fichier en ajoutant le paramètre à un répertoire de base. Sans validation appropriée, un attaquant peut fournir ../../etc/passwd pour remonter l'arborescence des répertoires et lire des fichiers arbitraires. La séquence ../ indique au système d'exploitation de monter d'un niveau dans la hiérarchie des répertoires, et le chaînage de plusieurs séquences permet la traversée vers n'importe quel emplacement accessible sur le système de fichiers.
Les attaquants exploitant la traversée de chemin ciblent généralement des fichiers de grande valeur. Sur les systèmes Linux, /etc/passwd révèle les comptes utilisateur, /etc/shadow peut contenir des hashes de mots de passe, et les fichiers de configuration de l'application contiennent souvent des identifiants de base de données et des clés API. Sur Windows, les cibles incluent boot.ini, win.ini et les fichiers de base de données SAM. Le code source de l'application web accédé par traversée de chemin peut révéler des vulnérabilités supplémentaires, la logique métier et des secrets codés en dur. Dans les cas graves, la traversée de chemin combinée avec le téléchargement de fichiers ou le log poisoning peut mener à l'exécution de code à distance.
Les applications peuvent tenter de bloquer la traversée de chemin avec des filtres basiques, mais les attaquants ont développé de nombreuses techniques de contournement. L'encodage URL (%2e%2e%2f), le double encodage URL (%252e%252e%252f), les bytes nuls (../../../etc/passwd%00.png) et l'encodage Unicode peuvent contourner la correspondance de motifs simple. Les séquences de traversée imbriquées (....//) survivent à un simple passage de suppression. Les variations spécifiques au système d'exploitation comme les antislash sur Windows (..) et les chemins absolus (/etc/passwd) peuvent contourner les filtres orientés Unix.
Une défense efficace contre la traversée de chemin nécessite plusieurs couches. La validation des entrées devrait rejeter tout chemin contenant des séquences de traversée après décodage. Les applications devraient utiliser une liste blanche de fichiers autorisés ou mapper les entrées utilisateur vers des identifiants de fichiers prédéfinis plutôt que d'utiliser des chemins de fichiers directs. Les contrôles au niveau du système de fichiers peuvent restreindre le processus de l'application web à un chroot jail ou un conteneur. Les configurations du serveur devraient refuser l'accès aux répertoires sensibles. Les tests de sécurité réguliers devraient inclure des charges utiles de traversée de chemin avec diverses techniques d'encodage et de contournement.
Créez un compte gratuit et pratiquez la cybersécurité.
Lancez votre machine dédiée pour commencer à hacker
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