第21篇:判断Weblogic详细版本号的方法总结

本文介绍了在渗透测试中如何判断Weblogic中间件的版本,以及利用不同方法确定版本号以提高漏洞挖掘效率。通过Weblogic的指纹特征、内置URL路径、访问特定页面、T3协议和CVE-2022-21371漏洞等方式,可以有效识别Weblogic的版本信息,从而避免无效的漏洞测试。同时,文章强调了Nday漏洞的价值,并提醒注意版本号判断在漏洞利用中的重要性。
摘要由CSDN通过智能技术生成

83c6e4038103db56a0bf1579f394fdc9.png

 Part1 前言 

在日常的渗透测试、红队评估项目中,中间件层面的漏洞挖掘是非常重要一环,Weblogic中间件在最近几年接连被爆出很多高危漏洞,基本上都是可以直接拿到权限的。主流的Weblogic漏洞包括HTTP协议上的CVE-2017-10271、CVE-2019-2729等,但是其影响weblogic的版本为12.1.3之前版本。如果能事先判断出weblogic的版本号是大于12.1.3的,那么可以放弃测试这两种漏洞,节省很多时间

此外还有很多T3协议、IIOP协议下的各种Java反序列化漏洞,但是这些反序列化漏洞利用起来非常非常麻烦,尤其是最近几年出现的漏洞很多都基于coherence组件,不同版本号的weblogic的coherence组件的SUID都不一样,而漏洞利用成功的前提就是漏洞利用工具的SUID和目标weblogic环境的SUID必须一致。

这就需要我们在渗透测试的时候,准确判断出Weblogic版本号,以备找到合适版本号的coherence组件去进行Java反序列化攻击。而且在得知weblogic版本号之后,不符合版本号的漏洞就不用测试了,这样会节省很多时间。接下来就给大家分享一些在各种情况下判断Weblogic细微版本号的方法。再次强调一下,依据ABC_123测试weblogic漏洞的经验,在weblogic漏洞的探测与利用之前,需要想尽各种办法去判断weblogic细微版本号,这样可以节省很多时间,也可以发最少量的数据包。因为weblogic各种漏洞非常多,非常繁杂,而且利用成功与否受weblogic版本影响特别大

 Part2 技术研究过程 

  • Weblogic细微版本号对照表

既然要判断Weblogic版本号,首先就要让大家了解一下weblogic各版本号的命名规则。不得不说,Oracle公司的产品,在版本号的命名上、日志结构上一向弄得很复杂。

笔者曾经遇到这么一个尴尬的事情,相信网友们也遇到过类似的情况。在一次渗透测试报告总结会中,有技术人员找到了一个Weblogic反序列化漏洞,但是他给出的修复建议是,把Weblogic 11g版本升级到12c版本。客户那边的接口人开会时就对此提出质疑和批评:我们公司部署的Weblogic中间件明明是10.3.6版本,是10版本的,你们给的修复建议居然是由11版本升级到12版本,我们没有11版本的weblogic啊

结果在场的项目经理和技术人员都被问懵了,被客户质疑地哑口无言,楞是没答出这个问题来,一致认为修复建议给错了,于是引起了一系列误会。后来我发了如下这张图,跟大家解释了一下,其实客户跟我们说的都没错,Weblogic 10.3.6版本跟11g版本其实是一回事,只是命名规则不同。具体大家可以把下面这张图仔细看几遍,就自然明白了,我在这里就不过多叙述了。

528afdaa3d807bb2c13c132d4084ad93.png

  • 判断是否使用了Weblogic

 1   Weblogic指纹特征判断

判断一个网站应用是否使用了Weblogic中间件,可以通过查找指纹特征的方法去判断。输入一个不存在的URL路径,看Web服务是否返回如下“From RFC 2068Hypertext Transfer Protocol”关键字,即可判断出是否使用Weblogic中间件来。

b4414bf77b8c9438c8385a6a845b4416.png

使用Burpsuite发包返回如下:

65264c58d70a924cf5c5d2ef76c19366.png

 2   Weblogic内置URL路径判断

对于有些网站屏蔽了404错误回显的情况,可以通过访问Weblogic内置Web目录是否存在去间接去判断是否使用了Weblogic中间件。比如/consolehelp/、/bea_wls_internal/、/console/等路径是Weblogic专有的,再比如说可以访问Weblogic专有的漏洞CVE-2017-10271、CVE-2019-2729等对应的URL路径(/wls-wsat/、/_async/等),但是这个方法不推荐使用,因为基本上都会被WAF拦截,更严重的情况是会导致封IP,导致后续正常路径也无法判断出来,而且大多数甲方客户修复漏洞的方法,就是直接删除存在漏洞的war包,导致这两个路径也不存在。

9ab7cc8d3bfc44934089ec1e00a59fe8.png

10171dffd70d77e8b60815c95e70ee12.png

69027a7962178c5ff7a1ff3126795ca2.png

  • 判断Weblogic详细版本号方法

 1   访问特定页面可显示版本号

访问/console/目录,如果console目录应用没有删除,在页面左下角会给出一个weblogic的详细版本号。

d3c40364edd7b062f6ae9df974ebdbb5.png

a398e4982abb3f58dbe53d29a3e9eef2.png

 2   通过T3协议获取

通过T3协议可以直接获取Weblogic版本号,缺点是现在Weblogic的T3直接暴露在公网上的情况很少了,很多时候在前面会放置一个nginx反向代理,这种情况下,T3识别版本号的方法就用不了了。

可以使用nmap去识别,具体命令如下:

nmap 192.168.237.235 -p 7130 --script="weblogic-t3-info.nse" -v -Pn -n -sV --open -T4

d97bc30eddd461ab7e6751c8ab93de54.png

也可以自己从github上下载一个T3协议的发包代码,自己修改一下,直接把T3协议的返回包输出,就直接可以看到版本号了。

7dfd68de861412942e9148ceeb8f7efd.png

 3   CVE-2022-21371文件包含漏洞判断

这个漏洞是2022年出现的漏洞,是一个文件包含漏洞,通过这个漏洞可以跳转目录对Weblogic的/WEB-INF/xml、jsp、html文件等进行文件读取。这也是被大家忽略的一个Nday漏洞,在这里,我们可以用这个漏洞,间接判断出weblogic的版本号

思路是,fast_track.html这个文件的显示内容有个时间,每一个细微版本大致对应着一个weblogic的细微版本号,用来做版本识别恰到好处。

访问.//fast_track.html,如下图所示,对于Weblogic的12.2.1.3.0版本,此文件回显时间内容是1996,2017

1066973fe1c4805d4d0da6dd0e173a24.png

如下图所示,对于Weblogic的12.1.3.0.0版本,此文件回显的时间内容是1996,2014

c5444c5935c081747d9f6e45e19a6707.png

 4   通过返回头来判断

很早之前从github上的一个脚本中复制出来放在我的笔记中的,忘记具体作者是谁了。这个方法我没有具体验证过,大家测试成功后,可以在微信公众号后台给我发消息,告诉我准确度如何。

通过返回头判断weblogic版本号:

def check_weblogic_by_header(headers):

status,msg = False,'may be not weblogic'

if 'X-Powered-By' in headers:

m = re.findall(r'Servlet/(.+)\s+JSP/(.+)',headers['X-Powered-By'])

if m :

Servlet,JSP = m[0]

if Servlet == '2.4' and JSP == '2.0':

status = True

msg = 'weblogic 9.x'

elif Servlet == '2.5' and JSP == '2.1':

status = True

msg = 'weblogic 10.x'

elif Servlet == '3.0' and JSP == '2.2':

status = True

msg = 'weblogicc 12.x'

return status,msg

Part3 总结 

1.  nday也是有价值的,看大家对漏洞的理解以及如何灵活运用。

2.  判断weblogic版本号方法还有很多,上述方法是我比较常用的,也给大家拓展一下思路,还有很多其它方法后续再慢慢讲。

f0ef1150ba27ff07d6c3252a41bcf459.png

专注于网络安全技术分享,包括红队、蓝队、日常渗透测试、安全体系建设等

每周一篇,99%原创,敬请关注

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以通过以下命令在Linux上查看WebLogic版本号: 1. 进入WebLogic的安装目录,例如:/opt/weblogic/wlserver_10.3/server/bin 2. 执行以下命令:./version.sh 3. 在输出结果中,可以看到WebLogic版本号,例如:WebLogic Server 10.3.6.. ### 回答2: Linux 查看 WebLogic 版本号可以采用以下几种方法: 1.使用 WebLogic 控制台查看版本号WebLogic 控制台登录后,可以在主页上的“服务器”下找到 WebLogic 服务器的版本信息。具体操作步骤如下: 1)打开 WebLogic 控制台首页 2)在主页左侧导航栏点击“服务器” 3)在“服务器”页面上,查找当前正在运行的 WebLogic 服务器的名称 4)点击当前服务器名称,进入“概要”页面 5)在“概要”页面下方的“版本”中查看 WebLogic 版本号。 2. 在 WebLogic 实例安装目录下查看版本号WebLogic 的实例安装目录下,可以通过查看系统属性文件获取 WebLogic 版本号。具体操作步骤如下: 1)进入 WebLogic 实例安装目录,例如:/middleware/Oracle_Home/user_projects/domains/base_domain 2)进入 bin 目录 3)启动“setDomainEnv.sh”脚本 4)在控制台中输入以下命令: java weblogic.version 5)按回车键,即可查看 WebLogic 版本号。 3. 在 WebLogic 管理器中查看版本号 WebLogic 管理器是一种管理 WebLogic 服务器的工具,也可以通过它来查看 WebLogic 版本号。具体操作步骤如下: 1)打开 WebLogic 管理器 2)在导航菜单上点击“应用程序”选项 3)在“应用程序”页面中,找到您的 WebLogic 服务器实例 4)点击“基本信息”并在下方“服务器”下看到版本号 通过上述方法,可以方便地在 Linux 系统上查看 WebLogic 版本号,有助于维护和运维 WebLogic 服务器。 ### 回答3: 要查看WebLogic版本号,需要打开一个终端,然后按照以下步骤: 1、首先需要在终端中切换到WebLogic的安装目录。可使用以下命令将终端切换到WebLogic的根目录下: cd /home/user_name/Oracle/Middleware/wlserver_10.3 2、接着在WebLogic根目录下找到version.txt文件,可以使用以下命令进行查找: find . -name version.txt 3、找到version.txt文件后,使用cat命令查看文件内容: cat ./version.txt 4、在version.txt文件中查找WebLogic版本号,通常版本号会出现在第一行,如下所示: WebLogic Server 10.3.6.0.0MP1 Fri Nov 14 08:39:56 PST 2014 1480550 上述版本号中的"10.3.6.0.0MP1"就是WebLogic版本号。 除了使用终端命令来查找WebLogic版本号外,还可以通过WebLogic的控制台来查找版本号。需要先登录到WebLogic控制台,然后依次点击“服务器” -> “环境模拟器” -> “操作管理” -> “WebLogic版本”即可查看WebLogic版本号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希潭实验室

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值