- 博客(5)
- 收藏
- 关注
原创 Java反序列化(三)——CC6、CC3
问题2解决:其实从这里的代码逻辑上看,只要superClass.getName().equals(ABSTRACT_TRANSLET)成立,_transletIndex就会赋值为i(>0),这样就不会走_auxClasses的逻辑,下面
2024-08-14 17:03:00
921
原创 Java反序列化(二)——URLDNS链、CC1链
MapEntry这一种类来说,当Map遍历Entry(一个键值对)时,其底层就会将Map封装进MapEntry中,所以只需要遍历TransformedMap的Entry,并在遍历的过程中调用setValue,就能进入TransformedMap.checkSetValue(Object)中。而在遍历时,利用的是第一个参数Map,所以需要put个键值对进去,这样在遍历是才会非空,进入循环的逻辑里。
2024-08-13 16:57:34
981
原创 Java反序列化(一)——基础知识
Java程序在运行钱需要先编译成.class文件,这个文件的内容被称为字节码,然后调用加载字节码,每一个类都会在方法区保存一份它的元数据,在堆中创建一个与之对应的Class对象。类的生命周期,经历7个阶段,分别是加载、验证、准备、解析、初始化、使用、卸载。除了使用和卸载两个过程,前面的5个阶段加载、验证、准备、解析、初始化的执行过程就是类的加载过程。验证、准备、解析合成为连接过程。
2024-08-10 22:27:43
710
原创 Struts2漏洞复现(一)——开发基础及执行流程
struts2相当于SSM架构中的springmvc,主要负责web层,作为控制器来建立模型与视图之间的数据交互。其核心内容包括:interceptor、action和valuestack。
2024-08-03 23:43:41
588
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人