Java反序列化漏洞-CC5

payload:public class CC5 { public static void main(String[] args) throws Exception { BadAttributeValueExpException badAttributeValueExpExcep


东华杯ezgadget赛后复现

@RequestMapping({"/readobject"}) public String unser(@RequestParam(name = "data",required = true) String data, Model model)


Java反序列化漏洞-CC3

CC3同样要求JDK版本在8u71以下我们可以将TemplatesImpl加载字节码的特性来改造一下CC1一个小demo public static void main(String[] args) throws Exception { TemplatesImpl obj = new


Java动态加载字节码的方法

JAVA字节码Java字节码(ByteCode)指的是Java虚拟机执行使用的一类指令,通常被存储在.class文件中但是我们所说的"字节码"可以理解的更广义一些----所有能够恢复成一个类并在JVM虚拟机里加载的字节序列,都在我们的讨论范围之内。Java的ClassLoader


Java反序列化漏洞-CC6

因为Java 8u71以后,sun.reflect.annotation.AnnotationInvocationHandler#readObject的逻辑发生变化,导致cc1的链子在8u71之后无法使用。而cc6这条链可以解决高版本Java的利用问题解决高版本Java的利用问题,实际上就是在找上下


Java反序列化漏洞-CC1(LazyMap)

LazyMap中的get方法也有调用transform方法这里的factory是一个可控的transformer而AnnotationInvocationHandler中的Invoke方法中有调用get方法Object result = memberValues.get(member);member


Java反序列化漏洞-CC1挖掘

这条链所涉及的接口和类:TransformedMapTransformedMap用于对Map做一个修饰,被修饰过的Map在添加新的元素时,会分别触发keyTransformer和valueTransformer的transform方法(回调)。我们通过下面代码对innerMap进行修饰,传出的out


Java反序列化URLDNS链

URLDNS是ysoserial中一个利用链的名字,但其触发的结果只能进行进行一次DNS请求直接跟进HashMap的readObject方法private void readObject(java.io.ObjectInputStream s) throws IOException, Clas