PHP序列化與反序列化(二)

2022-04-29 15:24:14 字數 854 閱讀 3985

題目(攻防世界):

__construct和__destruct的魔術方法是預設執行的,我們可以忽視他們,__wake up執行以後會返回當前主頁上,需要繞過,下面的正則匹配preg_match也需要繞過,flag在f14g.php裡

繞過之後就需要傳個var的值,值為base64編碼以後的序列化

__wakeup()魔術方法

unserialize() 會檢查是否存在乙個 __wakeup() 方法。如果存在,則會先呼叫 __wakeup 方法,預先準備物件需要的資源。

正則匹配的話在物件長度之前新增乙個+號可以繞過

先執行**,返回序列化之後的內容

這裡我們其實發現了問題,引數名demofile的長度為10,可是雙引號裡面只有8個字元,剩下兩個跑哪去了?

發現空格存在

按照上面說的繞過,然後拿去編碼(錯誤範本):

就是那兩個字元出的問題

不管拿去url裡面get傳參,得到flag

php序列化與反序列化

php的序列化 反序列化對與一些大檔案的壓縮操作,讀寫操作十分有用。乙個簡單的序列化案例 同時用到了序列化與反序列化函式,二者在被呼叫時會分別自己呼叫對應的函式,sleep 以及 wakeup.sleep和 wakeup練習題 故事 乙個果農生產了很多水果種類,於是需要把乙個買家指定的種類寄給他,生...

php 序列化與反序列化

序列化 反序列化序列化 例一class user number 66 str jerry bool true null null arr array a 1,b 2 user new user tom true var dump serialize number var dump serialize...

php序列化與反序列化

jarvisoj上的一道題 是關於php序列化以及反序列化引起的問題,我看 wp大神的wp 題目給直接給出了源 這句話是關鍵,漏洞產生在php serialize和php解析方式上。如果我們通過php serialize的方式構造序列化語句,然後通過php的方式解析序列化語句,就會出現問題。原因是在...