Java 反序列化取经路

Java 反序列化相关学习笔记、研究内容目录,持续更新ing...

(注:其实这种调用链非常复杂的漏洞调试文章,写出来基本没什么用,写的都是谁调用了谁,怎么想办法让这个 if else 走到这个调用点这一类的,如果只是为了构造 payload,那还好说,但是如果站在更高层面,如漏洞挖掘,0 day 防御这种目标的话,还是要了解思想,不能光看调用,而且如果你不自己动态调试,光看文章说的天花乱坠也是没用的,我在学的时候看其他人的文章也是一头雾水,调试过了才会理解构造的过程,不过依旧是一个学习记录的过程,当流水账般的日记发出来而已)

前置知识

ysoserial 补全计划

特别鸣谢:0range 师傅的相关博客

以下红色为入口点(kick-off),紫色为触发点(sink),其余为中间的调用链(chain)

其他反序列化

一些项目的了解和学习

ysuserial

魔改

一些总结

AnnotationInvocationHandler 作用

在反序列化 gadget 中多次遇到 AnnotationInvocationHandler 这个类,那么他在反序列化漏洞的利用中都可以起到什么样的作用呢?

一些以前没有注意过的点

  • Method 对象可以反序列化出去用
  • 之前提到反序列化,一直盯着类的 readObject 方法看,实际上一个类的相关漏洞 writeObject 方法也许更重要。
  • Class.forName() 可以指定 ClassLoader。

漏洞调试有感

弹计算器比找女朋友有意思多了。