church

PHP反序列化漏洞

浪尽此生 提交于 2019-11-28 22:09:49
聊一聊PHP反序列化漏洞 2016年11月4日 反序列化漏洞在各种语言中都较为常见,下面就简单聊一聊PHP的反序列化漏洞(PHP对象注入)。第一次了解这个洞还是在某次ctf上,就简单记录下个人理解以及对CVE-2016-7124的简单分析。 序列化与反序列化 php允许保存一个对象方便以后重用,这个过程被称为序列化,序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。先看一眼具体什么样子 name . '\'s phone is ' . $this->phone; } } $usr = new info(); $usr->printdata(); echo serialize($usr); ?> 此时输出 church's phone is 111111 O:4:"info":2:{s:4:"name";s:6:"church";s:5:"phone";s:6:"111111";} 可以看到其中没有任何跟类有关的东西,只有其中的数据被数据化。 O:4:"info":2:{s:4:"name";s:6:"church";s:5:"phone";s:6:"111111";} O:4:"info":2: 参数类型为对象(object),数组(array)为a。类名为info,有两个变量(参数 s:4:"name";s:6:"church"; s