攻防世界 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
反序列化知识点补充: 私有属性和被保护的属性,需要加上 \00*\00 。再base64编码。
反序列化链接:https://blog.csdn.net/silence1_/article/details/89716976