進入到題目的界面,看到以下源碼
構造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