PHP反序列化漏洞

2023-07-30 17:44:42 浏览数 (1)

主要函数

代码语言:javascript复制
#  将对象序列化后返回
serialize()
#  将字符串反序列化后返回
unserialize()

魔术方法

方法名

触发条件

__construct

创建对象

__destruct

销毁对象

__sleep

序列化对象

__wakeup

反序列化得到对象

__invoke

以函数的形式调用对象

__toString

以字符串的形式调用对象(改方法返回值为字符串)

__call

在对象上下文中调用不可访问的方法

__callStatic

在静态上下文中调用不可访问的方法

__get

从不可访问的属性中读取数据

__set

将数据写入不可访问的数据

__isset

在不可访问的属性上调用isset()或empty()方法

__unset

在不可访问的属性上使用unset()方法

技巧

  1. 当序列化字符串中的属性个数大于原本属性个数时,将不触发__wakeup()
  2. 注入对象构造方法触发同名函数

0 人点赞