目录
反序列化-PHP
是什么?
什么是序列化?
对象→字符串
什么是反序列化?
字符串→对象
关键函数:
serialize() 将一个对象转换成字符串
unserialize() 将字符串还原成一个对象
格式
下图有错误,int型的时候不需要字符串长度以及双引号
思维导图
PHP里的等于号
=赋值
==值相等
===值相等,类型相等
分为两类:
1.无类
2.有类(就是有class)
有类就涉及到魔术方法(满足条件时会自动触发)
魔术方法参考网址:CTF PHP反序列化 - MustaphaMond - 博客园
常见魔术方法
1.__construct()//创建对象时触发
2.__destruct() //对象被销毁时触发
3.__call() //在对象上下文中调用不可访问的方法时触发
4.__callStatic() //在静态上下文中调用不可访问的方法时触发
5.__get() //用于从不可访问的属性读取数据
6.__set() //用于将数据写入不可访问的属性
7.__isset() //在不可访问的属性上调用 isset()或 empty()触发
8.__unset() //在不可访问的属性上使用 unset()时触发
9.__invoke() //当脚本尝试将对象调用为函数时触发