看到题目就应该想到这道题会考关于反序列化_wakeup()函数绕过的点
关于绕过_wakeup()函数:
__wakeup触发于unserilize()调用之前,但是如果被反序列话的字符串其中对应的对象的属性个数发生变化时,会导致反序列化失败而同时使得__wakeup失效。
O:<length>:"<class name>":<n>:{<field name 1><field value 1>...<field name n><field value n>}
O:表示序列化的事对象
< length>:表示序列化的类名称长度
< class name>:表示序列化的类的名称
< n >:表示被序列化的对象的属性个数
< field name 1>:属性名
< field value 1>:属性值
利用所给代码建立一个新的对象并进行序列化得
O:4:"xctf":1:{s:4:"flag";s:3:"111";}
此处更改其属性值为2或更大来使反序列化失败
O:4:"xctf":2:{s:4:"flag";s:3:"111";}
进行code传参并载入页面
(我好无知,继续学习)