Бесплатно Две критические

Everest_RR

Местный
Private Club
Регистрация
8/10/18
Сообщения
232
Репутация
20
Реакции
255
RUB
0
icon-spring-framework.svg

Работа критических уязвимостей в Spring Framework

Spring – популярный фрейворк для разработки на Java. Практически нереально найти приложение на Java, которое не применяло бы Spring. Совсем недавно обнаружили две уязвимости, приводящие к удаленному исполнению кода. Рассмотрим принцип их работы.

Одна из уязвимостей (CVE-2018-1270) для работы модуля с веб-сокетами, (CVE-2018-1260) – модуль авторизации по протоколу OAuth2. Для начала необходимо перейти к подготовлению стенда. При работе нам необходимы:

 любая ОС;

 Docker;

 Java 8;

 Maven или подобная тулза;

 IDE.

Чтобы проверять уязвимости, придется качать и запускать приложения, написанные на Java. IDE необходим для наглядности процесса.

Одним из первых багов в списке spring является удаленное выполнение команд в модуле spring-messaging. Обнаружение уязвимости было весной, причем ее статус характеризовался как критический. Некорректная логика обработки STOMP-сообщений и легкое использование удаленно была замечена даже на актуальных версиях фреймворка.

STOMP – спроектированный протокол обмена сообщениями, который основан на фреймах аналогичных HTTP. Его структура позволяет реализовываться поверх других протоколов. Сама проблема находится в модуле spring-messaging во время реализации протокола STOMP.

Для тестирования берутся примеры использования STOMP. Далее необходимо заглянуть в папку хранения фронтенда и найти app.js, в которой имеется функция, отвечающая за подключение клиента к серверу. Для этого применяется библиотека SockJS. До компиляции следует добавить переменную с пейлоадом. После компилирования можно запускать приложение.

Информация в файле DefaultSubscriptionRegistry.java отрабатывается и генерируется подписка на события для клиента. Для вызова конструктора java.lang.Class используется модификатор. Это указывает на то, что мы с легкостью можем создать экземпляр java.lang.Runtime и выполнить команду с помощью метода exec.

После привязки селектора к сообщениям, на которые пользователь подписан, продолжается общение с сервером для их получения.

Чтобы избежать проблему получения доступа к директории, необходимо не использовать файлы из файловой системы или установить в качестве сервера Tomcat/WildFly. Своевременная установке обновлений позволит избежать таких проблем и усилить безопасность.
Читать статью на:
 
Сверху Снизу