作者:白帽汇安全研究院@Sp4rr0vv核对:白帽汇安全研究院@r4v3zn概述2020 年 7 月 15 日,Oracle 发布大量安全修复补丁,其中 CVE-2020-14644 漏洞被评分为 9.8 分,影响版本为 12.2.1.3.0、12.2.1.4.0, 14.1.1.0.0 。本文基于互联网公开的 POC 进行复现、分析,最终实现无任何限制的 defineClass + 实例化,进行实现 RCE。前置知识JDK 的 ClassLoader 类中有个方法是 defindClass ,可以根据类全限定名和类的字节数组,加载一个类到 jvm 中并返回对应的 Class 对象(随带一提,这种加载类的方式不会执行类初始化)。image-20200805135249325所以只要参数 name(类名)和 b (类文件的二进制数据)可控,理论上我们可以加载任何类,需要注意的一点是,这个类名 name 一定要和这个类字节数组 b 中对于的类名一致
………………………………