
common-user-management — это надежное приложение на Spring Boot, предоставляющее услуги управления пользователями для динамического контроля доступа пользователей. В конечной точке `/api/v1/customer/profile-picture` приложения обнаружена критическая уязвимость безопасности. Эта конечная точка позволяет загружать файлы без надлежащей проверки или ограничений, что приводит к (RCE).
Я обнаружил критическую уязвимость безопасности в common-user-management, мощном приложении на Spring Boot, предоставляющем службы управления пользователями для динамического контроля доступа. Эта уязвимость затрагивает конечную точку /api/v1/customer/profile-picture, позволяя злоумышленникам загружать файлы без надлежащей проверки, что может привести к удаленному выполнению кода (RCE).
Вы можете использовать эту уязвимость с помощью следующего скрипта на Python:
python exploit.py -u "customer_user" -p "your_password" -f "malicious.jsp" -url "https://target.com"
-u: Имя пользователя
-p: Пароль
-f: Вредоносный файл для загрузки
-url: Целевой URL
Существует критическая уязвимость безопасности в конечной точке /api/v1/customer/profile-picture. Эта конечная точка позволяет загружать файлы без надлежащей проверки или ограничений, что позволяет злоумышленникам загружать вредоносные файлы, которые могут привести к удаленному выполнению кода (RCE).
Проблема возникает из-за отсутствия проверки расширения файла и заголовка Content-Type. В результате приложение разрешает загрузку произвольных файлов, включая:
HTML-файлы (проверено) Серверные скриптовые файлы (например, JSP, PHP, ASP и т.д.)
Затем эти файлы могут быть выполнены веб-сервером, что позволяет злоумышленникам выполнять произвольный код на сервере, потенциально ставя под угрозу всю систему.
Загрузить вредоносный файл: Отправьте PUT-запрос к /api/v1/customer/profile-picture с помощью пользователя customer с ролями 26,17, добавив вредоносный файл (например, .jsp, .php, .html).
Получить расположение файла: Отправьте GET-запрос /api/v1/customer/my-profile, извлеките расположение файла из ответа по ссылке профиля.
Выполнить загруженный файл: Используя имя файла, получите доступ к файлу напрямую через URL, возвращенный в ответе. Если сервер поддерживает загруженный тип файла, он выполнит этот файл, что приведет к удаленному выполнению кода.