
common-user-management es una robusta aplicación Spring Boot que cuenta con servicios de gestión de usuarios diseñados para controlar el acceso de usuarios dinámicamente. Existe una vulnerabilidad de seguridad crítica en el endpoint de la aplicación /api/v1/customer/profile-picture. Este endpoint permite cargas de archivos sin la validación o restricciones adecuadas, lo que conduce a (RCE).
Descubrí una vulnerabilidad de seguridad crítica en common-user-management, una robusta aplicación Spring Boot que ofrece servicios de gestión de usuarios diseñados para controlar el acceso de usuarios de forma dinámica. Esta vulnerabilidad afecta al endpoint /api/v1/customer/profile-picture, permitiendo a los atacantes cargar archivos sin una validación adecuada, lo que puede derivar en Ejecución Remota de Código (RCE).
Puedes explotar esta vulnerabilidad utilizando el siguiente script de Python:
python exploit.py -u "customer_user" -p "your_password" -f "malicious.jsp" -url "https://target.com"
-u: Nombre de usuario
-p: Contraseña
-f: Archivo malicioso a cargar
-url: URL del objetivo
Existe una vulnerabilidad de seguridad crítica en el endpoint /api/v1/customer/profile-picture. Este endpoint permite la carga de archivos sin una validación o restricciones adecuadas, lo que permite a los atacantes subir archivos maliciosos que pueden conducir a la Ejecución Remota de Código (RCE).
El problema se origina por la falta de validación de la extensión del archivo y del encabezado Content-Type. Como resultado, la aplicación permite la carga de archivos arbitrarios, incluyendo:
Estos archivos pueden ser ejecutados posteriormente por el servidor web, permitiendo a los atacantes ejecutar código arbitrario en el servidor, lo que podría comprometer todo el sistema.
Cargar un Archivo Malicioso:
Envía una solicitud PUT a /api/v1/customer/profile-picture utilizando un usuario con rol 26,17 añadido, con un payload de archivo malicioso (por ejemplo, .jsp, .php, .html).
Obtener la ubicación del archivo:
Envía una solicitud GET a /api/v1/customer/my-profile y captura la ubicación del archivo en la respuesta con el enlace del perfil.
Ejecutar el Archivo Cargado: Utilizando el nombre del archivo, accede directamente al archivo a través de la URL devuelta en la respuesta. Si el servidor es compatible con el tipo de archivo cargado, lo ejecutará, lo que conducirá a la Ejecución Remota de Código.