
common-user-management ist eine robuste Spring-Boot-Anwendung mit Benutzerverwaltungsdiensten, die entwickelt wurden, um den Benutzerzugriff dynamisch zu steuern. Es gibt eine kritische Sicherheitslücke im Anwendungsendpunkt /api/v1/customer/profile-picture. Dieser Endpunkt erlaubt Datei-Uploads ohne ordnungsgemäße Validierung oder Einschränkungen, was zu (RCE) führt.
Ich habe eine kritische Sicherheitslücke in common-user-management entdeckt, einer robusten Spring-Boot-Anwendung mit Benutzerverwaltungsdiensten, die dazu dient, den Benutzerzugriff dynamisch zu steuern. Diese Schwachstelle betrifft den Endpunkt /api/v1/customer/profile-picture und ermöglicht es Angreifern, Dateien ohne ordnungsgemäße Validierung hochzuladen, was zu Remote Code Execution (RCE) führen kann.
Sie können diese Schwachstelle mit dem folgenden Python-Skript ausnutzen:
python exploit.py -u "customer_user" -p "your_password" -f "malicious.jsp" -url "https://target.com"
-u: Benutzername
-p: Passwort
-f: Schädliche Datei zum Hochladen
-url: Ziel-URL
Im Endpunkt /api/v1/customer/profile-picture besteht eine kritische Sicherheitslücke. Dieser Endpunkt erlaubt Datei-Uploads ohne ordnungsgemäße Validierung oder Einschränkungen, sodass Angreifer schädliche Dateien hochladen können, die zu Remote Code Execution (RCE) führen können. Beschreibung der Schwachstelle
Das Problem beruht auf einem fehlenden Abgleich der Dateierweiterung und des Content-Type-Headers. Infolgedessen erlaubt die Anwendung das Hochladen beliebiger Dateien, einschließlich:
HTML-Dateien (getestet) Serverseitige Skriptdateien (z. B. JSP, PHP, ASP usw.)
Diese Dateien können dann vom Webserver ausgeführt werden, sodass Angreifer beliebigen Code auf dem Server ausführen können, was möglicherweise das gesamte System gefährdet.
Schädliche Datei hochladen: Senden Sie eine PUT-Anfrage an /api/v1/customer/profile-picture, wobei ein Kunde mit Rolle 26,17 verwendet und eine schädliche Datei als Nutzlast (z. B. .jsp, .php, .html) angehängt wird.
Dateispeicherort abrufen: Senden Sie eine GET-Anfrage an /api/v1/customer/my-profile und übernehmen Sie den Dateispeicherort aus der Antwort mit dem Profillink.
Hochgeladene Datei ausführen: Greifen Sie mithilfe des Dateinamens direkt über die in der Antwort zurückgegebene URL auf die Datei zu. Wenn der Server den hochgeladenen Dateityp unterstützt, führt er die Datei aus, was zu Remote Code Execution führt.