WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现

06-01 1374阅读

0x00 漏洞概述

CVE-2017-10271 是Oracle WebLogic Server WLS Security组件中的远程代码执行漏洞。攻击者通过构造恶意XML请求,利用XMLDecoder反序列化机制绕过安全验证,最终实现服务器权限接管。

影响版本

  • WebLogic 10.3.6.0
  • WebLogic 12.1.3.0
  • WebLogic 12.2.1.0~12.2.1.2

    漏洞危害

    • 远程代码执行(RCE):直接获取服务器Shell
    • 数据泄露:读取数据库配置、密钥等敏感信息
    • 横向渗透:作为跳板攻击内网其他系统

      0x01 漏洞原理

      技术背景

      WebLogic的wls-wsat组件(Web Services Atomic Transaction)用于处理SOAP协议请求,其核心流程如下:

      SOAP Request → XMLDecoder解析 → 实例化Java对象 → 执行操作
      

      漏洞触发点在于XMLDecoder未对反序列化内容做安全过滤,导致攻击者可通过恶意XML注入任意Java代码。

      关键代码分析

      漏洞位于wls-wsat.war!/CoordinatorPortType.java:

      public void processXML(XMLStreamReader xmlReader) {
          XMLDecoder decoder = new XMLDecoder(xmlReader); // 未校验输入直接反序列化
          Object obj = decoder.readObject();              // 恶意对象被实例化
          invokeBusinessLogic(obj);                       // 触发恶意逻辑
      }
      

      攻击载荷构造

      利用java.lang.ProcessBuilder执行系统命令的典型XML结构:

        
          
            
              
                
                  /bin/bash
                  -c
                  touch /tmp/pwned
                
                
            
          
        
        
      
      

      0x02 环境搭建

      实验环境

      组件版本
      Docker20.10+
      Vulhub靶场weblogic/CVE-2017-10271
      攻击机Kali Linux 2023

      一键启动漏洞环境

      git clone https://github.com/vulhub/vulhub.git
      cd vulhub/weblogic/CVE-2017-10271
      docker-compose up -d
      

      访问 http://your-ip:7001 确认WebLogic控制台正常加载。


      0x03 漏洞复现

      步骤1:检测漏洞端点

      发送探测请求到/wls-wsat/CoordinatorPortType端点:

      curl -X GET http://target:7001/wls-wsat/CoordinatorPortType
      

      若返回HTTP 200且包含WS-AtomicTransaction字样,则存在漏洞。

      步骤2:构造RCE攻击

      使用Burp Suite发送恶意SOAP请求:

      1. 请求路径:POST /wls-wsat/CoordinatorPortType HTTP/1.1
      2. Content-Type:text/xml
      3. Payload:替换XML中的touch /tmp/pwned为任意命令

      步骤3:验证执行结果

      进入Docker容器检查命令是否执行:

      docker exec -it  /bin/bash
      ls -l /tmp/pwned  # 查看文件是否创建成功
      

      0x04 修复方案

      临时缓解

      1. 删除wls-wsat组件:
        rm -rf /weblogic/path/servers/AdminServer/tmp/_WL_internal/wls-wsat
        
      2. 禁用SOAP协议:
        
            false
        
        

      官方补丁

      升级至WebLogic 10.3.6.0.211107 或 12.2.1.4.211107 及以上版本。

      长期防御

      • 输入过滤:对XML内容进行白名单校验
      • 权限隔离:WebLogic进程以低权限用户运行
      • 流量监控:使用WAF拦截异常SOAP请求

        0x05 防御思考

        此漏洞暴露了反序列化信任边界的致命缺陷。开发过程中应遵循:

        1. 最小化反序列化接口暴露
        2. 采用安全的序列化协议(如JSON、Protobuf)
        3. 强制签名验证关键数据

        参考资源

        • Oracle官方公告
        • CVE-2017-10271漏洞分析报告
        • WebLogic加固指南

          实验声明:本文仅用于网络安全研究,请在合法授权环境下进行测试!

          WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现
          (图片来源网络,侵删)
          WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现
          (图片来源网络,侵删)
          WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现
          (图片来源网络,侵删)
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码