InstantiateTransformer commons-collections 3.1 中有 InstantiateTransformer 这么一个类,这个类也实现了 Transformer的transform方法 ,如下: public Object transform(Object input) { try { if (input instanceof Class == false) { throw new FunctorException( "InstantiateTransform…
InvokerTransformer 首先来看 commons-collections-3.1-sources.jar!\org\apache\commons\collections\functors\InvokerTransformer.java 下的 transform 方法 public Object transform(Object input) { if (input == null) { return null; } try { Class cls = input.getClass(…
在 ysoserial中 commons-collections2 是用的 PriorityQueue reaObject 作为反序列化的入口 那么就来看一下 java.util.PriorityQueue.java 的 readObject方法 PriorityQueue#readObject private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundExcepti…
前言 本篇开始介绍 commons-beanutils 利用链,注意Commons-Beanutils 不是Commons-Collections 不要看混了,首先来看一下,什么是 commons-beanutils,我们看下官网的描述: Most Java developers are used to creating Java classes that conform to the JavaBeans naming patterns for property getters and sett…
Apache Common-collection 反序列化利用链解析 TransformedMap链 参考Java反序列化漏洞分析 - ssooking - 博客园 (cnblogs.com) poc package com.company; import org.apache.commons.collections.Transformer; import org.apache.commons.collections.functors.ChainedTransformer; import org…
Shiro反序列化利用 前言:hvv单位这个漏洞挺多的,之前没专门研究打法,特有此篇文章. Shiro rememberMe反序列化漏洞(Shiro-550) 漏洞原理 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie.在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞. 那么,Payload产生的过程: 命令=>序列化=>AES加密=>base6…
笔记里直接复制出来的   1 composer直接获取框架代码   ➜  composer create-project --prefer-dist topthink/think tp5137 ➜  cd tp5137 ➜  vim composer.json # 把"topthink/framework": "5.1.*"改成"topthink/framework": "5.1.37" ➜  composer update…
前言 JDK 7u21以前只粗略的扫过一眼,一看使用了AnnotationInvocationHandler,就以为还是和 CC1 一样差不多的利用方式,但最近仔细看了下利用链发现事情并不简单- 7u21 要求你能理解: TemplatesImpl 代码执行原理 动态代理是什么 AnnotationInvocationHandler 利用原理 其实7u21是对AnnotationInvocationHandler 的进一步挖掘. 调用链 HashSet.readObject() map.put(…
目录 0 前言 1 环境 2 commons-beanutils反序列化链 2.1 TemplatesImple调用链 2.2 PriorityQueue调用链 2.3 BeanComparator 3 Shiro无依赖paylaod CaseInsensitiveComparator java.util.Collections$ReverseComparator 4 总结 4.1 shiro反序列化的注意事项 4.2 shiro反序列化利用--注入内存马 0 前言 其实shiro的反序列化过程…
前言 基本的魔术方法和反序列化漏洞原理这里就不展开了. 给出一些魔术方法的触发条件: __construct()当一个对象创建(new)时被调用,但在unserialize()时是不会自动调用的 __destruct()当一个对象销毁时被调用 __toString()当一个对象被当作一个字符串使用 __sleep() 在对象在被序列化之前运行 __wakeup将在unserialize()时会自动调用 __set方法:当程序试图写入一个不存在或不可见的成员变量时,PHP就会执行set方法. __…