PHP序列化和反序列化主要函数

PHP反序列化的主要四个函数

serialize() //将一个对象转换成一个字符串

unserialize() //将字符串还原成一个对象

json_encode() //对变量进行 JSON 编码

json_decode() //对 JSON 格式的字符串进行解码

 

反序列化漏洞的产生

反序列化漏洞出现得满足两个前提:

  • 一、unserialize函数的参数可控。
  • 二、 代码里有定义一个含有魔术方法的类,并且该方法里出现一些使用类成员变量作为参数的存在安全问题的函数

对象注入

当用户的请求在传给反序列化函数unserialize()之前没有被正确的过滤时就会产生漏洞。因为PHP允许对象序列化,攻击者就可以提交特定的序列化的字符串给一个具有该漏洞的unserialize函数,最终导致一个在该应用范围内的任意PHP对象注入。

转:https://wiki.freebuf.com/detail?tribal_id=31&camp_id=17&entry_id=17003