核心
PHP反序列化漏洞:执行unserialize()时,先会调用__wakeup()。
当序列化字符串中属性值个数大于属性个数,就会导致反序列化异常,从而跳过__wakeup()。
1.看到本题标题,再看到flag和request,是对flag的类进行序列化,再进行请求,
2.看到wakeup函数,说明进行反序列化的时候会调用此功能,理解到的就是请求后就会对其进行反序列化,若是正常进行的话,就没有flag,所以一定要跳过wakeup,所以就利用了漏洞。
3.对xctf的这个类进行的序列化,而不是flag这个属性,将得到的进行反序列化,将1变成其它数字:
O:4:"xctf":1:{s:4:"flag";s:3:"111";}------>O:4:"xctf":3:{s:4:"flag";s:3:"111";}
正常情况
绕过wakeup