PHP 的反序列化和java 的反序列化是两种不同的类型,序列化和反序列化本身没有漏洞点只是为了实现数据的完整高效的传输。
PHP 反序列漏洞是由于类里面的魔术方法调用了某个函数,该危险函数又调用了别的函数最终执行到了危险函数的位置
JAVA反序列化漏洞是由于开发者重写了 readObject 方法,该readObject 方法方法调用了别的方法,最终执行到了例如 Transfrom 方法的危险方法
序列化:
ObjectOutputstream–>writeObject()反序列化:
ObjectInputstream–> readObject()
上面是java中序列化和反序列化的函数,在反序列化过程中,往往要进行重写readobject()函数,因为如果不进行重写readObject()函数,系统默认调用的是父类的反序列化函数,如果在反序列化过程中存在转义,将序列化后的字节序列转成base64编码,子类继承后默认调用父类的readObject()是无法识别的,只有重写readObject()函数,在其中加入一个还原字节序列的函数,才能成功反序列化,这就是重写readO