前文
上文给大家带来了WEBLOGIC常见的漏洞不知道大家理解了没有,今天给大家带来一个新的中间件漏洞的讲解——glassfish,本文会先介绍该中间件的简单信息然后解析一下该中间件可能存在的漏洞类型,下面我们展开文章来讲。
GlassFish
GlassFish 是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,用于构建 Java EE 5 应用服务器的开源开发项目的名称。
该中间件常见功能端口可以总结为以下图片:
了解完该中间件的基本信息,我们开始我们的漏洞分析之旅,下面来说说这个中间件的常见漏洞以及利用方法。
CVE-2017-1000028
该漏洞也可以说成为glassfish任意文件文件读取漏洞,因为glassfish是基本java语言编写的服务器,所以存在一个特性,即会把%c0%ae解析为\uC0AE,最终会被转换成为ascii编码中的(.),于是根据这个思路我们可以构造payload来尝试就进行目录跳跃:
%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/ #会解析为…/…/…/…/…/…/etc/passwd
影响版本如下:
glassfish< 4.1.1
下面我们通过一个实际样例来进行一下漏洞攻击的演示:
在拥有glassfish中间件的网站,我们先访问它的4848端口,根据上面提到的端口信息,4848端口为admin后台管理页面:
我们通过中间件探测插件判断中间件版本是否符合攻击目标,发现版本低于4.1.1,可以进行攻击,于是我们构造下面的payload:
theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af/etc/passwd
发包后可以看到回显给了我们要读取的信息,说明攻击是成功的:
这个漏洞的修复方法也十分简单,只需升级GLASSFISH中间件的版本,或者关闭服务器的远程管理权限即可。
GlassFish 后台Getshell
这个漏洞利用思路类似于之前讲的WEBLOGIC管理页面上传WAR包来进行攻击,利用的是4848端口的管理中心的弱口令,通过爆破密码进入后台,然后上传WAR包来进行GETSHELL。在管理中心的这个位置,我们可以上传WAR包:
其中Context Root为URL的根目录,我们可以进行自定义,比如我们将其定义为SHELL,我们上传好制造的WAR包后,可以访问路径:
SHELL/SHELL.jsp
发现木马上传成功,之后就可以用WEBSHELL连接工具进行进一步的渗透,当然也可以直接去进行命令执行:
xino.jsp?pwd=xino&i=cat /flag
我们只需要注意我们访问文件路径的格式为:
IP:8080/[Context Root]/[war包内的filename]
该漏洞由于是通过弱口令进入后台的,所以修复方法可以是加强后台密码的强度来防止弱口令爆破,或者关闭后台管理界面的开放。
后台弱口令
说到后台漏洞,这里简单提一下GLASSFISH的4848端口的后台管理页面存在弱口令,GlassFish2默认帐号密码为:
admin/adminadmin
所以我们在部署该中间件时记得修改它的后台默认密码来降低被攻击的几率。
结语
今天总结了一下GLASSFISH中间件的常见的攻击漏洞的利用手法,不知道大家有没有学会,可以看到GLASSFISH中间件由于解析特性的原因都可能存在漏洞,同时也有类似于WEBLOGIC部署WAR包的漏洞,还是值得我们认真学习一下的,如果喜欢本文希望可以一键三连支持一下。
最后
整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。
有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享
部分文档展示:
文章篇幅有限,后面的内容就不一一展示了
有需要的小伙伴,可以点下方卡片免费领取