└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # JavaDeserialization 2 | java反序列化学习笔记 3 | 4 | # 说明 5 | 我这里只写重点,想学的建议自己debug过一遍。 6 | 反序列学习路径推荐: 7 | http://scz.617.cn:8/web/202005261453.txt 8 | 9 | 10 | 11 | # readObject源码分析 12 | 13 | # URLDNS 14 | 最适合新手分析的反序列化链,完全吃透按顺序开始下面的学习。 15 | 16 | 17 | # cc链 18 | 基础,很多漏洞都需要用到。 19 | cc链是指依赖Commons-Collections组件构造出来的反序列化利用链。 20 | Commons-Collections组件主要有两大版本:cc3和cc4。 21 | 这里新手容易绕晕,这两个是完全独立的包。4出来的原因好像是大佬们觉得3写的不好,直接重构了一个全新版本。 22 | 23 | cc3 24 | cc3可用的链有:1、3、5、6、7 25 | 26 | ```xml 27 | 28 | 29 | commons-collections 30 | commons-collections 31 | 3.1 32 | 33 | 34 | ``` 35 | 36 | 37 | cc4 38 | cc4可用的链有:2、4 39 | 40 | ```xml 41 | 42 | 43 | org.apache.commons 44 | commons-collections4 45 | 4.0 46 | 47 | 48 | ``` 49 | 50 | 还有大佬整合了k1,k2链可以通杀两大版本。 51 | 52 | ## cc1 53 | 重点,动态代理和反射要学好,不然很吃力。知识点非常多。 54 | ## cc2 55 | 重点,和cc1一样需要重点理解,再继续学其他的,后面的链是前面这两条的各种变形。 56 | 57 | ## cc3 58 | 1和2的结合,理解TrAXFilter触发TemplatesImpl 59 | ## cc4 60 | 2和3的结合 61 | 62 | ## cc5 63 | 重点,理解TiedMapEntry和BadAttributeValueExpException 64 | 65 | ## cc6 66 | 多种版本,学了前面再看这个就简单了。 67 | ## cc7 68 | 理解cc6 69 | 70 | ## 7u21 71 | jdk原生链,复杂的一批。 72 | 73 | 74 | 75 | 76 | --------------------------------------------------------------------------------