
common-user-management est une application Spring Boot robuste offrant des services de gestion des utilisateurs conçus pour contrôler l'accès utilisateur de manière dynamique. Il existe une vulnérabilité de sécurité critique dans le point de terminaison de l'application /api/v1/customer/profile-picture. Ce point de terminaison permet le téléchargement de fichiers sans validation ni restrictions appropriées, ce qui conduit à une (RCE).
J'ai découvert une vulnérabilité de sécurité critique dans common-user-management, une application Spring Boot robuste proposant des services de gestion des utilisateurs conçus pour contrôler l'accès utilisateur de manière dynamique. Cette vulnérabilité affecte le point d'accès /api/v1/customer/profile-picture, permettant à des attaquants de télécharger des fichiers sans validation appropriée, ce qui peut conduire à une exécution de code à distance (RCE).
Vous pouvez exploiter cette vulnérabilité à l'aide du script Python suivant :
python exploit.py -u "customer_user" -p "your_password" -f "malicious.jsp" -url "https://target.com"
-u : Nom d'utilisateur
-p : Mot de passe
-f : Fichier malveillant à télécharger
-url : URL cible
Il existe une vulnérabilité de sécurité critique dans le point d'accès /api/v1/customer/profile-picture. Ce point d'accès permet le téléchargement de fichiers sans validation ni restrictions appropriées, permettant à des attaquants de télécharger des fichiers malveillants pouvant conduire à une exécution de code à distance (RCE).
Le problème provient d'un manque de validation de l'extension du fichier et de l'en-tête Content-Type. Par conséquent, l'application autorise le téléchargement de fichiers arbitraires, notamment :
Fichiers HTML (testés) Fichiers de scripts côté serveur (par exemple, JSP, PHP, ASP, etc.)
Ces fichiers peuvent ensuite être exécutés par le serveur web, permettant aux attaquants d'exécuter du code arbitraire sur le serveur, compromettant potentiellement l'ensemble du système.
Télécharger un fichier malveillant : Envoyez une requête PUT vers /api/v1/customer/profile-picture en utilisant un client avec les rôles 26,17 ajoutés, avec une charge utile de fichier malveillant (par exemple, .jsp, .php, .html).
Obtenir l'emplacement du fichier : Envoyez une requête GET vers /api/v1/customer/my-profile, récupérez l'emplacement du fichier dans la réponse via le lien du profil.
Exécuter le fichier téléchargé : En utilisant le nom du fichier, accédez directement au fichier via l'URL renvoyée dans la réponse. Si le serveur prend en charge le type de fichier téléchargé, il exécutera le fichier, conduisant à une exécution de code à distance.