unserialize3 反序列化

2021-10-24 04:08:45 字數 957 閱讀 6933

參考blog

攻防世界 web高階 unserialize3 題目

執行得到

重點關注被序列化的物件屬性個數

當序列化字串當中屬性個數值大於實際的屬性個數時,就會導致反序列化異常,從而跳過__wakeup函式

與序列化和反序列化的魔術方法主要是:

__construct()	//當乙個物件建立時被呼叫

__destruct() //物件被銷毀時觸發

__wakeup() //使用unserialize時觸發

__sleep() //使用serialize時觸發

__tostring() //把類當做字串時觸發

__get() //用於從不可訪問的屬性讀取資料

__set() //用於將資料寫入不可訪問的屬性

反序列化即 字串轉換成原來的變數

而序列化 是 變數變成字串

所以

獲取xctf類的序列化結果,再測試下是否返回反序列化的結果,然後把屬性值改為2即可,通過code傳遞,最後返回flag。

攻防世界 unserialize3

開啟之後是個 審計 還是先看一眼unserialize是個啥吧 wakeup 函式用法 wakeup 是用在反序列化操作中。unserialize 會檢查存在乙個wakeup 方法。如果存在,則先會呼叫 wakeup 方法。像下面的這個,他的輸出就是hello,而不是反序列化後的值 class a ...

攻防世界之unserialize3

題目 新知識 serialize 序列化函式,將物件轉化為可儲存可傳輸的字串 unserialize 反序列化,將字串轉為原來的物件 array a b banana c coconut 序列化陣列 s serialize a echo s echo 反序列化 o unserialize s pri...

攻防世界 十二 unserialize3

一道php反序列化的題 關鍵點 將類巴拉下來進行例項化,將例項化的物件進行序列化,然後再替換繞過 wakeup方法,如下 class xctf 例項化類 a newxctf 進行序列化 a serialize a 輸出檢視以下 echo a echo 替換繞過 wakeup方法 a str repl...