目录
1、学习,学习一下
先跟着pikachu简单学习一下什么叫序列化和反序列化:
但其实我已知这里有3个地方写的不对,需要更正一下:
(1)序列化结果中的S不是对象名称,而是类名称;同样的,O和S中间的1应该是类名字长度。
(2)几个魔法函数的举例有点让人误会,很容易误以为这些魔法函数都会造成反序列化漏洞,但其实__construct()在unserialize()时并不会被自动调用,这点在之后会进行演示。
(3)__wakeup()不是下图中写的那个作用,而是执行unserialize()时,先会调用这个函数,然后再进行反序列化
除此之外,从下面的实操中也能看出,反序列化漏洞并不一定是魔术方法的锅。这种自己打自己脸的操作,我觉得一定有深意,嗯~ o(* ̄▽ ̄*)o
总之,序列化是把对象转换为字符串