先审题,这个题的题目为unserialize3,这个单词在php中代表反序列化,代码_wakeup也是php反序列化中常见的魔术方法,所以这个题基本就是和反序列化有关的题目。
根据代码中提示,编写一个Exploit运行,将对象xctf的信息序列化,如图
得到一串字符:O:4:"xctf":1:{s:4:"flag";s:3:"111";},将这串参数注入进去,得到如图结果
说明触发了_wakeup魔术方法,因此我们要绕过这个方法,造成反序列化漏洞
通过网上查找,了解到:对于反序列化来说如果字符串中的变量的数目和真实的数目不一样那么__wakeup会出现错误,我们就造成了反序列化漏洞。
所以我们把O:4:"xctf":1:{s:4:"flag";s:3:"111";}中xctf后的变量1改成其它数字再次尝试注入,
得到flag