# TemplatesImpl 解析 在前面类动态加载中我们知道一般使用 defineClass 进行类加载 但是这里只加载但是不执行而且这个方法的属性为 protected ,而我们要找到其 public 的类,所以去 Find Usages 一下 一下就找到了,跟进 这里没有写作用域,所以是 default,就是说自己的包里能调用,再找一下哪里调用了这个函数 发现在自己的 defineTransletClasses 下调用了,再找一下谁调用了这个函数 直接看 getTransletInstance 类 发现这里有一个 newInstance...

测试环境:4.0 因为 CommonsCollections4 除 4.0 的其他版本去掉了 InvokerTransformer 的 Serializable 继承,导致无法序列化。 我们找了 TransformingComparator.compare 进行字节码加载 查看哪里调用了 TransformingComparator.compare 发现在 PriorityQueue.readObject 开始构造 先看 TransformingComparator 的构造方法 可以直接赋值 然后看 PriorityQueue...

BadAttributeValueExpException 注意在构造函数的时候会直接调用 toString方法 ,所以一开始需要赋值一个其他的,反序列化的时候再给 TiedMapEntry TiedMapEntry poc import javassist.ClassPool;import javassist.CtClass;import javassist.CtConstructor;import org.apache.commons.collections.Transformer;import...

# Apache Commons BeanUtils 简介 Apache Commons 工具集下除了 collections 以外还有 BeanUtils ,它主要用于操控 javabean 。 举个与反序列化攻击有关的操控 javabean 的例子。 public class Person { private String name = "catalina"; public String getName() { return name; } public void setName(String name)...

https://www.anquanke.com/post/id/256986#h3-7 https://www.bilibili.com/video/BV1LZ4y1m7Ah?spm_id_from=333.999.0.0 # 源码 给了 jar 包与 Dockerfile From openjdk:8u222-slimRUN apt-get update -y \ && apt-get install curl -y \ && useradd ctf \ && mkdir...