Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-46398 — Une preuve de concept pour l'exploitation de la faille CVE-2021-46398 | Kitploit
Outils/GitHubGitHub/laliea/cve-2021-46398
Analyse des VulnérabilitésExploitationExploitation d'Applications WebHameçonnageApprentissage et ÉducationLabs et PratiqueArchived
GitHublaliea/cve-2021-46398

CVE-2021-46398

Une preuve de concept pour l'exploitation de la faille CVE-2021-46398

Voir le dépôt
49il y a 2 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2021-46398 - Lalie ARNOUD, Gaspard ANDRIEU

Dans ce dépôt, vous trouverez une preuve de concept de l'exploitation de la faille CVE-2021-46398 via un docker compose, ainsi qu'une analyse des impacts de cette faille sur les systèmes d'information.

root@kitploit:~
# Exploit Title: FileBrowser 2.17.2 - Cross Site Request Forgery (CSRF) to Remote Code Execution (RCE)
# Date: 05/02/2022
# Exploit Author: FEBIN MON SAJI
# Vendor Homepage: https://filebrowser.org/
# Software Link: https://github.com/filebrowser/filebrowser
# Version:
    FileBrowser <= 2.17.2
# Tested on: Ubuntu 20.04
# CVE : CVE-2021-46398

Qu'est-ce que FileBrowser ?

Selon le site web de FileBrowser, FileBrowser est un logiciel populaire de type "créez votre propre cloud" que vous pouvez installer sur un serveur, le diriger vers un chemin et ensuite accéder à vos fichiers via une belle interface web développée en langage Go, avec de nombreuses fonctionnalités. C'est un peu comme Google Drive, sauf que chacun peut posséder et héberger sa propre instance.

Description de la faille

Les administrateurs de FileBrowser peuvent créer plusieurs utilisateurs, même un autre utilisateur privilégié administrateur, et donner accès à n'importe quel répertoire qu'il souhaite. La création d'utilisateur est gérée par un endpoint . L'endpoint accepte les entrées au format pour créer des utilisateurs, mais ne vérifie pas l'en-tête dont la valeur devrait être , mais accepte ; et c'est là que réside la vulnérabilité. De plus, l'en-tête n'est pas validé et aucun token anti- n'est implémenté. Par conséquent, un attaquant peut facilement exploiter cette vulnérabilité pour créer un utilisateur backdoor avec des privilèges administrateur et un accès au répertoire personnel ou à tout répertoire auquel l'attaquant veut accéder, simplement en envoyant une URL de page web malveillante à l'administrateur légitime et accéder à l'ensemble du système de fichiers du serveur (plus d'explications sur ce processus dans la section démonstration).

/api/users
JSON
Content-Type
HTTP
application/json
text/plain
Origin
CSRF

De plus, un administrateur peut exécuter des commandes sur le système, donc cette vulnérabilité mène à une RCE.

Voici un diagramme de séquence qui résume le processus d'attaque (Alice étant le pirate et Bob l'administrateur et hôte de l'instance FileBrowser) :

root@kitploit:~
sequenceDiagram
Alice (hacker) ->> Alice (hacker): *Maliciously creates the malicious HTML page*
Alice (hacker) ->> Bob (admin): Here is a cool page! You must check that bro!
Bob (admin) ->> Alice (hacker): Thanks dude, let's open that!
Bob (admin) ->> Bob (admin): *Opens the page thinking it's something cool*
Bob (admin) -->> FileBrowser: *Sends a request to create a user without knowing it*
FileBrowser -->> FileBrowser: *Creates a new admin privileged user as requested*
Alice (hacker) ->> FileBrowser: Eheheh Bob is so dumb! *Connect to FileBrowser with the backdoor user*
FileBrowser ->> Alice (hacker): *Accept Alice connection with the new user created*
Alice (hacker) ->> FileBrowser: *Request shell access to FileBrowser with the appropriate button then makes sytem calls on Bob's computer*

Démonstration de la faille de sécurité

Le but de cette démonstration est de mettre en place une mini-architecture composée de deux/trois machines :

  • votre ordinateur personnel en tant qu'ordinateur de l'administrateur FileBrowser d'un côté, et en tant qu'attaquant de l'autre côté.
  • un conteneur Docker vulnérable simulant un serveur FileBrowser distant.

C'est une architecture vraiment simplifiée dont le but est de mettre en évidence l'aspect technique de la faille.

Lancement de l'image de la machine vulnérable

Pour cette expérience, vous aurez seulement besoin de docker.

Dans cette configuration, la machine cible est basée sur une image FileBrowser v2.17.2 (qui est vulnérable à cette faille), dans laquelle le seul compte FileBrowser est le compte administrateur qui a admin/admin comme identifiant/mot de passe.

Lancement de la machine cible :

root@kitploit:~
mkdir srv && docker compose up

Exploit

Créer la page web malveillante

Du côté de l'attaquant, la page web malveillante nous permettra d'exécuter l'appel API FileBrowser et de créer notre utilisateur backdoor depuis l'ordinateur de l'administrateur.

Un exemple d'une telle page est fourni dans ce dépôt sous le nom index.html. Il s'agit d'une simple page HTML avec un formulaire caché qui effectue une requête POST vers l'endpoint /api/users de FileBrowser avec la charge utile dans le nom de l'entrée. Cette charge utile crée un utilisateur privilégié administrateur dont l'identifiant est "oui" et le mot de passe "oui", et est déclenchée lorsque le bouton est cliqué.

Nous aurions évidemment pu créer une page plus jolie et plus attrayante que celle-ci et cacher l'envoi de la requête HTTP dans un autre élément du site web, c'est juste pour que vous puissiez voir l'aspect technique de l'exploitation de la faille. Rappelez-vous que le but de cette page web malveillante est d'être ouverte par l'administrateur de FileBrowser sans qu'il ne soupçonne rien !

Exécuter l'exploit de la page web en envoyant le formulaire HTML

Du côté de l'administrateur, nous faisons tranquillement des trucs d'admin sur FileBrowser. Allez sur 127.0.0.1:8080 et connectez-vous avec les identifiants administrateur admin/admin.

Ensuite, nous recevons la page web malveillante par quelque moyen que ce soit, comme dans un email de phishing, et effectuons l'action qui déclenche l'exploit. Ouvrez la page web index.html et cliquez sur le bouton ; cela lance la charge utile.

Accéder à l'utilisateur backdoor FileBrowser

Maintenant, retour du côté de l'attaquant, nous avons maintenant un utilisateur backdoor avec privilèges administrateur sur le serveur FileBrowser.

Ouvrez votre navigateur web préféré en navigation privée pour vous assurer que vous n'utilisez aucun des moyens d'authentification de l'administrateur. Allez sur localhost:8080 et connectez-vous avec les identifiants de l'utilisateur backdoor oui/oui.

Félicitations ! Vous avez maintenant accès au système de fichiers du serveur FileBrowser et donc à tous les fichiers des utilisateurs du serveur !

Et parce que FileBrowser est une excellente plateforme avec de nombreuses fonctionnalités, vous pouvez lancer une instance de terminal en appuyant sur le bouton "toggle shell"... essayez de taper whoami, et faites ce que vous voulez en tant que root :)

Pour permettre à l'utilisateur backdoor d'utiliser des commandes shell, celles-ci doivent être explicitement déclarées dans la charge utile. Voir index.html pour ajouter les vôtres !

Correction

La faille a été corrigée à partir de la version v2.18.0. Les informations à ce sujet sont disponibles sur leur GitHub. Le correctif n'a pas été très coûteux à déployer car il n'a nécessité que la modification de 6 lignes de code dans un seul fichier de programme. Étant donné que la vulnérabilité provenait de l'échec de l'analyse (cf. description de la faille), il suffisait de s'assurer que toute requête était analysée au format application/json avant d'être traitée pour autre chose.

Glossaire

  • CSRF: Falsification de requête intersite
  • CVE: Vulnérabilités et Expositions communes
  • POST: Méthode HTTP
  • RCE: Exécution de code à distance

Références

  • CVE-2021-46398
  • ExploitDB
  • Exploit example
  • Security patch from FileBrowser's GitHub
  • Issue thread from FileBrowser's GitHub

Ce travail a été réalisé dans le cadre du cours de Sécurité des Systèmes d'Information donné en dernière année de la spécialisation Ingénierie des Systèmes d'Information à Grenoble INP - Ensimag, UGA.

Télécharger l’outil