Pikachu反序列化
serialize() //将一个对象转换成一个字符串
unserialize() //将字符串还原成一个对象
触发:unserialize函数的变量可控,文件中存在可利用的类,类中有魔术方法:
__construct()//创建对象时触发
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用isset()或empty()触发
__unset() //在不可访问的属性上使用unset()时触发
__invoke() //当脚本尝试将对象调用为函数时触发
https://c.runoob.com/compile/1/
序列化:
<?php
$a='abc';
echo serialize($a);
?>
反序列化:
<?php
$b='s:3:"abc";';
echo unserialize($b);
?>
<?php
class S{
var $test="pikachu";
function __construct(){
echo $thie->test;
}
}
$aa =new S();
echo serialize($aa);
?>
序列化
<?php
class MM{