LFI - Un ajustement intéressant

Mar 18 2023
Résumé Local File Inclusion (LFI) est un type de vulnérabilité d'application Web qui permet à un attaquant d'inclure et d'exécuter des fichiers arbitraires sur le serveur Web. Un attaquant peut profiter de cette vulnérabilité en passant un chemin de fichier malveillant comme paramètre, qui pourrait être un fichier local sur le serveur.

Résumé

L'inclusion de fichiers locaux (LFI) est un type de vulnérabilité d'application Web qui permet à un attaquant d'inclure et d'exécuter des fichiers arbitraires sur le serveur Web. Un attaquant peut profiter de cette vulnérabilité en passant un chemin de fichier malveillant comme paramètre, qui pourrait être un fichier local sur le serveur. Cela peut permettre à l'attaquant d'afficher des informations sensibles, telles que les fichiers de configuration ou les informations d'identification de l'utilisateur, d'exécuter du code arbitraire ou même de prendre le contrôle complet du serveur.

Description

J'ai trouvé une vulnérabilité d'inclusion de fichier local (LFI) sur l'un des programmes où j'ai pu télécharger le fichier web.xml à partir du répertoire WEB-INF/ . Cependant, le bug est assez simple avec un petit ajustement.

Le site Web avait une option Télécharger les détails du cours où il récupérait les détails du cours à partir d'un serveur via le paramètre filename= , il s'agissait d'une requête POST. Le site Web fonctionnait sur le serveur IIS , donc j'ai d'abord pensé à télécharger des fichiers sensibles, mais ils étaient tous restreints, mais j'ai ensuite pensé à télécharger le fichier web.xml qui a été téléchargé avec succès. Le fichier téléchargé avait le nom d'utilisateur et le mot de passe de l'administrateur, mais je n'ai pas pu trouver de portail de connexion, la gravité a donc été réduite. Je n'ai pas signalé le bogue car la cible était OOS (Out-Of-Scope).

Comment j'ai trouvé cette vulnérabilité ?

  1. Je suis allé sur le site Web où il y avait une option pour "Télécharger les détails du cours"
  2. Télécharger les détails du cours
Inspecter l'élément
Lien hypertexte et nom de fichier = Paramètre

3. Je savais qu'il utilisait le serveur IIS, j'ai donc recherché le chemin de web.xml

WEB-INF/

4. J'ai modifié le chemin vers ?filename=/WEB-INF/web.xml

web.xml

5. Ensuite, j'ai cliqué sur le bouton et téléchargé le fichier et l'ai ouvert, j'ai obtenu les informations d'identification

Télécharger
Téléchargé
Crédits

Pourquoi c'est arrivé ?

À mon avis,

Le site Web ne validait pas et ne désinfectait pas l'entrée de l'utilisateur avant de la traiter. Cependant, la plupart des fichiers sensibles ont été bloqués, mais le blocage de fichiers particuliers n'est pas la solution idéale de mon point de vue, l'entrée de l'utilisateur doit être validée et désinfectée avant de la traiter.

Impact

L'impact d'une vulnérabilité LFI peut être grave, car elle peut entraîner une compromission complète du serveur Web et de ses données. Cependant, dans mon cas, l'impact était limité au téléchargement du fichier web.xml car tous les principaux fichiers sensibles étaient limités au téléchargement, donc l'impact serait moyen.

N OTE : Si j'avais pu trouver le panneau de connexion qui me donne l'accès avec les informations d'identification que j'ai obtenues, la gravité aurait été élevée.

CVSS calculé

Chaîne vectorielle - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Note - 5,3 (moyenne)

Atténuation

La validation et le nettoyage des entrées doivent être effectués si une entrée utilisateur arrive. Le serveur ne doit pas traiter l'entrée de l'utilisateur sans validation. La validation et le nettoyage doivent être effectués côté client ainsi que côté serveur. De plus, l'application doit éviter d'utiliser l'entrée de l'utilisateur pour construire des chemins de fichiers et utiliser à la place une approche de liste blanche pour spécifier les chemins de fichiers autorisés. Les pare-feu d'applications Web peuvent également être utilisés pour détecter et bloquer les tentatives d'exploitation des vulnérabilités LFI.