CommonsCollections2(基于ysoserial)】的更多相关文章

在最后一步的实现上,cc2和cc3一样,最终都是通过TemplatesImpl恶意字节码文件动态加载方式实现反序列化. 已知的TemplatesImpl->newTransformer()是最终要执行的. TemplatesImpl类动态加载方式的实现分析见ysoserial CommonsCollections3 分析中的一.二部分. TemplatesImpl->newTransformer()的调用通过InvokerTransformer.transform()反射机制实现,这里可以看y…
目录 前言 基础知识 Transformer 利用InvokerTransformer造成命令执行 Map TransformedMap LazyMap AnnotationInvocationHandler 动态代理 Commons Collections Gadget 分析 CommonsCollections1 CommonsCollections2 疑问 CommonsCollections3 CommonsCollections4 CommonsCollections5 Commons…
Java unserialize serialized Object(AnnotationInvocationHandler.ysoserial) In readObject() LeadTo TransformedMap Change LeadTo InvokerTransformer(Evil MethodName/Args) catalog . Java 序列化 . Commons Collections . Java反序列化漏洞 . 漏洞利用实例 . 修复策略 . 安全问题延伸讨论 1.…
基于CommonsCollections4的Gadget分析 Author:Welkin 0x1 背景及概要 随着Java应用的推广和普及,Java安全问题越来越被人们重视,纵观近些年来的Java安全漏洞,反序列化漏洞占了很大的比例.就影响程度来说,反序列化漏洞的总体影响也明显高于其他类别的漏洞. 在反序列化漏洞的利用过程中,攻击者会构造一系列的调用链以完成其攻击行为.如何高效的生成符合条件且可以稳定利用的攻击Payload成为了攻击链条中的重要一环,当前已经有很多现成的工具帮助我们完成Payl…
前言 关于java反序列化漏洞的原理分析,基本都是在分析使用Apache Commons Collections这个库,造成的反序列化问题.然而,在下载老外的ysoserial工具并仔细看看后,我发现了许多值得学习的知识. 至少能学到如下内容: 不同反序列化payload玩法灵活运用了反射机制和动态代理机制构造POC java反序列化不仅是有Apache Commons Collections这样一种玩法.还有如下payload玩法: CommonsBeanutilsCollectionsLog…
目录 7u21 gadget链分析 hashCode绕过 参考 URLDNS 7u21 7u21中利用了TemplatesImpl来执行命令,结合动态代理.AnnotationInvocationHandler.HashSet都成了gadget链. 先看一下调用栈,把ysoserial中的调用栈简化了一下 LinkedHashSet.readObject() LinkedHashSet.add() Proxy(Templates).equals() AnnotationInvocationHan…
Apache Commons Collections2反序列化研究 环境准备 JDK 1.7 Commons Collections 4.0 javassit 前置知识 PriorityQueue() 使用默认的初始容量(11)创建一个 PriorityQueue,并根据其自然顺序对元素进行排序. PriorityQueue(int initialCapacity) 使用指定的初始容量创建一个 PriorityQueue,并根据其自然顺序对元素进行排序. 常见的方法: add(E e) 将指定的…
Apache Commons Collections1反序列化研究 环境准备 Apache Commons Collections 3.1版本 IDEA 需要一些java基础,反射.类对象.Classloader ctrl+shift+alt+s,导入jar包,也可以直接maven 导入yaso的包更方便 原理分析 感觉这篇文章把这个漏洞的原因讲的非常详细,https://xz.aliyun.com/t/136 Apache Commons Collections 是一个扩展了Java标准库里的…
本文假设你对Java基本数据结构.Java反序列化.高级特性(反射.动态代理)等有一定的了解. 背景 YsoSerial是一款反序列化利用的便捷工具,可以很方便的生成基于多种环境的反序列化EXP.java -jar ysoserial.jar 可以直接查看payload适用环境及其适用版本. 关于此工具的背景,我引用P神的<Java安全漫游>文章对其的描述: 2015年Gabriel Lawrence (@gebl)和Chris Frohoffff (@frohoffff)在AppSecCal…
这是CC链分析的第二篇文章,我想按着common-collections的版本顺序来介绍,所以顺序为 cc1.3.5.6.7(common-collections 3.1),cc2.4(common-collections4). 打开YsoSerial payloads CommonsCollections3源码: public Object getObject(final String command) throws Exception { Object templatesImpl = Gad…