攻防世界 ctf web进阶区 unserialize

进入到题目的界面,看到以下源码

构造payload=?code=O:4:"xctf":1:{s:4:"flag";s:3:"111";}

 结合题目以及大佬的wp可以知道,这是一道unserialize的反序列化题。结合魔术方法 __wakeup() 可以知道,这一道题是要考察我们对于__wakeup()的绕过方法.

上网查阅资料可以知道,当序列化字符串当中属性个数值大于实际的属性个数时,就会导致反序列化异常,从而跳过__wakeup函数。

于是构造payload=?code=O:4:"xctf":5:{s:4:"flag";s:3:"111";}

得到flag

反序列化知识点补充:  私有属性和被保护的属性,需要加上 0*0 。再base64编码。 

反序列化链接:https://blog.csdn.net/silence1_/article/details/89716976

原文地址:https://www.cnblogs.com/cioi/p/11530733.html