攻防世界 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

posted @ 2019-09-16 22:35  Cxlover  阅读(1801)  评论(0编辑  收藏  举报