Dans cette vidéo pas à pas, nous avons couvert la salle des vulnérabilités de téléchargement de TryHackMe où nous avons démontré des méthodes et des techniques pour exploiter les vulnérabilités de téléchargement de fichiers en plus de contourner les filtres de téléchargement tels que l'utilisation de nombres magiques, la modification de l'extension de fichier, etc.

Obtenir des notes OSCP

Le cours pratique complet sur les tests d’intrusion d’applications Web

La possibilité de télécharger des fichiers sur un serveur fait désormais partie intégrante de la façon dont nous interagissons avec les applications Web. Qu'il s'agisse d'une photo de profil pour un site Web de réseau social, d'un rapport téléchargé sur le stockage cloud ou de l'enregistrement d'un projet sur Github ; les applications pour les fonctionnalités de téléchargement de fichiers sont illimitées.

Malheureusement, s’ils sont mal gérés, les téléchargements de fichiers peuvent également ouvrir la voie à de graves vulnérabilités sur le serveur. Cela peut entraîner des problèmes de nuisance relativement mineurs ; jusqu'à l'exécution complète de code à distance (RCE) si un attaquant parvient à télécharger et exécuter un shell. Avec un accès illimité au téléchargement sur un serveur (et la possibilité de récupérer des données à volonté), un attaquant pourrait dégrader ou modifier le contenu existant, jusqu'à et y compris l'injection de pages Web malveillantes, ce qui entraînerait d'autres vulnérabilités telles que XSS ou CSRF. En téléchargeant des fichiers arbitraires, un attaquant pourrait potentiellement également utiliser le serveur pour héberger et/ou diffuser du contenu illégal, ou pour divulguer des informations sensibles. En réalité, un attaquant ayant la possibilité de télécharger un fichier de son choix sur votre serveur – sans aucune restriction – est en effet très dangereux.

Le but de cette salle est d'explorer certaines des vulnérabilités résultant d'une gestion inappropriée (ou inadéquate) des téléchargements de fichiers. Plus précisément, nous examinerons :

  • Écraser des fichiers existants sur un serveur
  • Télécharger et exécuter des shells sur un serveur
  • Contourner le filtrage côté client
  • Contourner divers types de filtrage côté serveur
  • Tromper les contrôles de validation du type de contenu

Nous avons donc un point de téléchargement de fichiers sur un site. Comment pourrions-nous procéder pour l’exploiter ?

Comme pour tout type de piratage, l’énumération est essentielle. Plus nous comprenons notre environnement, plus nous sommes capables de faire avec ça. Il est utile de consulter le code source de la page pour voir si un type de filtrage côté client est appliqué. Analyse avec un bruteforcer d'annuaire tel que Gobuster est généralement utile dans les attaques Web et peut révéler où les fichiers sont téléchargés ; Gobuster n'est plus installé par défaut sur Kali, mais peut être installé avec sudo apt installer gobuster. Intercepter les demandes de téléchargement avec Burpsuite sera également utile. Extensions de navigateur telles que Wappalyseur peut fournir en un coup d’œil des informations précieuses sur le site que vous ciblez.

Avec une compréhension de base de la façon dont le site Web pourrait gérer nos entrées, nous pouvons alors essayer de fouiller et voir ce que nous pouvons et ne pouvons pas télécharger. Si le site Web utilise un filtrage côté client, nous pouvons facilement consulter le code du filtre et chercher à le contourner (nous en parlerons plus tard !). Si le site Web dispose d'un filtrage côté serveur, nous devrons peut-être deviner ce que recherche le filtre, télécharger un fichier, puis essayer quelque chose de légèrement différent en fonction du message d'erreur si le téléchargement échoue. Le téléchargement de fichiers conçus pour provoquer des erreurs peut y contribuer. Des outils comme Burpsuite ou OWASP Zap peut être très utile à ce stade.

Réponses de la salle

Quel est le nom du fichier image qui peut être écrasé ?

Écrasez l'image. Quel est le drapeau que vous recevez ?

Exécutez un Gobuster scannez sur le site Web en utilisant la syntaxe de la capture d'écran ci-dessus. Quel répertoire semble être utilisé pour les téléchargements ?

(NB : c’est une bonne habitude à prendre, et cela vous servira bien dans les tâches à venir…)

Obtenez soit un shell Web, soit un shell inversé sur la machine.
Quel est le drapeau dans le répertoire /var/www/ du serveur ?

Quel est le langage de script côté serveur traditionnellement prédominant ?

Lors de la validation par extension de fichier, comment appelleriez-vous une liste d'extensions acceptées (le serveur rejetant toute extension ne figurant pas dans la liste) ?

[Recherche] Quoi MIME type vous attendez-vous à voir lors du téléchargement d’un fichier CSV ?

Quel est le drapeau dans /var/www/?

Quel est le drapeau dans /var/www/?

Prenez le drapeau de /var/www/

Piratez la machine et récupérez le drapeau de /var/www/

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles