黑名单机制必然会推动两种研究方向的发展:一是挖掘不在黑名单的新组件,是为绕过规则;二是发掘检查的盲区,是为绕过逻辑。CVE-2020-14756二次反序列化具有对抗检查逻辑的天生丽质,在CVE-2018-2893中就有利用字节数组和反射重建类两种方式。找找还有没有readObject到Class.forName的路子:readUnsignedByte读到的nType为9或10时会进入readXmlSerializable或readExternalizableLite分支。上述两个方法均通过自身loadClass方法加载类,最终由Class.forName获取类并返回。• readXmlSerializable方法获取类后继续进行XML解析,是另一个XXE漏洞。readExternalizableLite方法获取类后继续调用readExternal反序列化,不受黑名单限制,进而引出两个问题:1. ExternalizableHelper自身没有实现Serializable接口,一定有什么地方调用它的readObject2. loadClass加载后强转为了ExternalizableLite类型,它哪些满足readExterna
………………………………