序列化: 把对象转换为字节序列的过程称为对象的序列化
反序列化: 把字节序列恢复为对象的过程称为对象的反序列化
看一下反序列化的 代码,样式
<?php
$t1 = "asdfsdf 2023 你好 ";
$t2 = array("xb",2023);
echo serialize($t1);
echo '<hr>';
echo serialize($t2);
?>
什么造成的漏洞?
反序列化对象中存在魔术方法,而魔术方法中的代码可以被控制漏洞根据不同的代码可以导致各种攻击,如代码注入、SQL注入、目录遍历等等
序列化不同的结果
public
private
protect
在class类中, 不一样的
漏洞的本质
unserialize函数的变量可控
php 文件存在可利用的类,类中有魔术方法
destruct 在结束时,给一个机会释放空间,在运行一次,
obj 传参 O 是对象 ,类名是1个字符,类名为A,1个方法 s是字符串,1个变量名a,
s 18 是 参数 18个字符, 后面是内容,