WebLogic UniversalExtractor反序列化漏洞CVE-2020-14645的分析是怎样的


今天就跟大家聊聊有关WebLogic UniversalExtractor反序列化漏洞CVE-2020-14645的分析是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。完成漏洞挖掘条件分析、漏洞复现。WebLogic 是美国 Oracle 公司的 Java 应用服务器,确切说是一个中间件,被用于WEB应用、数据库应用等的集成开发部署。WebLogic 的 T3 协议易被利用,从而采用 JNDI 注入、反序列化方法达到远程代码执行的目标。存在安全缺陷的版本:WebLogic12.2.1.4.x,【JDK版本:6u211以下;7u201以下;8u191以下】。本文使用JDK1.8.0_181。认为应掌握JNDI注入方法,并清晰WebLogic的coherence源码的逻辑功能。在 WIN10 的 WSL2 下用 docker 镜像 weblogic122140jdk8u181new:latest、ubuntu 创建三个容器,称为weblogic122140jdk8u181new、ubuntu-JNDI、ubuntu-gongji,作用分别为WebLogic 服务器、JNDI服务器、攻击机。对于 weblogic122140jdk8u181new 容器【ip:172.17.0.2】的生成过程,需要进入【WeblogicEnvironment】文件夹,参照【https://github.com/QAX-A-Team/WeblogicEnvironment】方法即可生成,命令是:对于由 ubuntu 镜像生成的 ubuntu-JNDI 容器【ip:172.17.0.3】,将 jdk-8u181-linux-x64.tar.gz、JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar拷贝至容器内,参照【https://www.cnb免费云主机域名logs.com/hellojesson/p/11684299.html】安装好jdk,执行命令:对于由ubuntu镜像生成的ubuntu-gongji容器【ip:172.17.0.4】,将jdk-8u181-linux-x64.tar.gz、CVE-2020-14645.jar拷贝至容器内,参照【https://www.cnblogs.com/hellojesson/p/11684299.html】安装好jdk。1.4.2 目标在 WebLogic 服务器执行代码【touch /tmp/CVE】,从而在 tmp 文件夹下生成 CVE 文件。
1.4.3 复现ubuntu-JNDI 容器会输出可利用的 LDAP 链接,本次输入结果如下:
则在攻击机 ubuntu-gongji 容器中输入转发类命令如下:注意标红位置 LDAP 链接尾部是随机产生的,每次均不一样。weblogic122140jdk8u181new 容器会出现经代码执行后生成的文件:
1.4.4 分析方法【省略部分代码分析】程序运行时,会跳转至下图红框中的 coherence 库中执行部分功能。
com.tangosol.util.extractor.UniversalExtractor类中:protected transient String m_sNameCanon;private transient TargetReflectionDescriptor m_cacheTarget;private transient boolean m_fMethod;com.tangosol.util.extractor.UniversalExtractor#extract方法中的com.tangosol.util.extractor.UniversalExtractor#extractComplex方法中:初步认为,进入else分支中,即可调用任意方法,前提是fProperty为false。经研究,fProperty由!this.m_fMethod决定,其赋值如下init()函数:fProperty方面,当sCName不是无参函数且非空时,fProperty为true。继续分析String sCName = this.getCanonicalName();,追溯到类com.oracle.common.internal.util.CanonicalNames的方法com.oracle.common.internal.util.CanonicalNames#computeValueExtractorCanonicalName(java.lang.String, java.lang.Object[]):综上,有三种方法。方法1:寻找以 “get”/“is” 开头的函数名。【机会较小】方法2:使fProperty为false,则需寻找以“get”/“is”开头的无参函数。【机会很小】方法3:观察extract在compare函数中被调用了两次,会导致一些值发生变化,从而产生缺陷。【经验证无效】对于方法1,可找到合规函数名,再找可序列化的对象(例如,控制dataSource,就能控制javax.sql.rowset.BaseRowSet#getDataSourceName,进行JNDI注入。暂无。加载容器tar为镜像,例子:设置局域网及容器ip、启动容器,例子:(1)自定义网络(2)启动 docker 容器当容器【ubuntu-JNDI1106】的ip是172.17.0.3、容器【ubuntu-gongji1106】的ip是172.17.0.5、容器【weblogic122140jdk8u181new1106】的ip是172.17.0.4时,启动 weblogic 服务。进入容器【weblogic122140jdk8u181new1106】,输入命令启动成功,如下图。启动 JNDI 服务。进入容器【ubuntu-JNDI1106】,依次输入命令可知适用于 jdk1.8 的 JNDI 访问链接为【ldap://172.17.0.3:1389/usns1q】,如下图。发起攻击。进入容器【ubuntu-gongji1106】,依次输入命令“172.17.0.3:1389/usns1q”部分为JNDI链接,攻击成功会返回weblogic版本,如下图。攻击成功后,容器【ubuntu-JNDI1106】会显示传输信息,如下图。攻击成功后,weblogic服务器会生成【CVE】文件,如下图。看完上述内容,你们对WebLogic UniversalExtractor反序列化漏洞CVE-2020-14645的分析是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注云编程开发博客行业资讯频道,感谢大家的支持。

相关推荐: C言语冒泡排序算法及代码

冒泡排序的根本思惟就是不时比拟相邻的两个数,让较大的元素不时地往后移。经由一轮比拟,就选出最大的数;经由第2轮比拟,就选出次大的数,以此类推。下面以对 3 2 4 1 停止冒泡排序阐明。第一轮 排序进程3 2 4 1 (最后)2 3 4 2 (比拟3和2,交流…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/05 12:13
Next 02/05 12:13