Категория > Новости > Плохая логика. Выполняем произвольный код в популярном сервере приложений Oracle WebLogic - «Новости»
Плохая логика. Выполняем произвольный код в популярном сервере приложений Oracle WebLogic - «Новости»19-01-2018, 08:00. Автор: Григорий |
Содержание статьи
Сервер приложений WebLogic, как и большинство продуктов Oracle, широко распространен в энтерпрайз-среде и используется крупными компаниями по всему миру. Проблемы, подобные этой, могут грозить огромными убытками и повлечь за собой утечки приватных данных. Продукты компании PeopleSoft, производящей ПО для управления базами клиентов, финансового планирования и управления персоналом, тоже подвержены этой?уязвимости, поскольку один из компонентов — это сервер WebLogic. Проблема заключается в некорректной фильтрации данных при парсинге пользовательского запроса в XML перед передачей его в XMLDecoder. Отвечает за это модуль WLS Security. Уязвимость получила номер CVE-2017-10271 — это логическое продолжение?не до конца запатченной CVE-2017-3506 в модуле Web Services. Баг затрагивает версии WebLogic до 10.3.6.0.0, 12.1.3.0.0, 12.2.1.1.0 и 12.2.1.2.0. ПодготовкаСначала поднимем и настроим наш первый в 2018 году стенд для тестирования уязвимости. Я сижу на винде и поэтому буду использовать win-версию сервера WebLogic. Для того чтобы загрузить сам дистрибутив, тебе понадобится?рабочий аккаунт Oracle. Если у тебя его нет, то можешь зарегистрироваться тут. Далее переходим в раздел загрузок, принимаем лицензионное соглашение и выбираем нужную версию дистрибутива для загрузки. Рекомендую использовать ветку 10.3.6, так как там сразу работает уязвимый модуль. Windows Oracle WebLogic распространяется в?виде инсталлятора, в котором уже имеется JDK, ведь дистрибутив написан на Java и требует Development Kit для работы. Инсталлятор WebLogic 10.3.6.0.0 Сразу после завершения установки тебе предложат запустить и настроить рабочее окружение. Не вижу смысла отказывать в этом. Компоненты JDK в инсталляторе После всех настроек?мы получаем готовую рабочую среду для тестирования уязвимости. Стартовая страница WebLogic Если ты используешь Linux, то рекомендую поднять окружение через Docker, благо в репозитории ты уже можешь найти готовые сборки WebLogic. Вот, например, одна из них. ДеталиДавай сразу же проверим работу эксплоита. Загрузить один из?вариантов PoC можно отсюда. Для корректной работы в качестве параметра нужно указать адрес сервера WebLogic. По умолчанию скрипт отправляет запрос с эксплоитом к роуту CVE-2017-10271/exploit.py
CVE-2017-10271/exploit.py
После запуска PoC будет предложено ввести команду, которую нужно выполнить на удаленной системе. CVE-2017-10271/exploit.py
Поскольку это логическое продолжение уязвимости CVE-2017-3506, сначала?взглянем, что делает патч, который Oracle выпустила для нее. Нужные нам файлы находятся в файле Нас интересует файл WorkContextXmlInputAdapter.java
Он проверяет переданный XML-запрос на наличие элементов Object, и если такой встречается, то?скрипт кидает исключение Однако не Object’ом единым живет RCE. Существует еще множество способов проэксплуатировать уязвимость в десериализации XML. Посмотрим на этот же файл, но уже из последней версии, где уязвимость исправлена. Перейти обратно к новости |