題目一共三個檔案:
反序列化漏洞的詳細說明可在這篇部落格上了解到,講解還是比較詳細的:
本題目主要就是利用hitcon
和sofun
兩個類中的__wakeup
函式,我們可以控制hitcon
物件的$method
和$args
變數,來進行sql
注入,注入語句如下:
1' and 1=2 unionc select 1,2 ','a:1:}'--
注意後面的sql
注釋符號是兩個下劃線和乙個空格
因為我們要繞過substr($data, 0, 2) !== 'o:'
,所以就不能單純地序列化乙個物件,而是把物件包裹在陣列中來繞過這個過濾條件,構造的時候是這樣的:
$a = array(new sofun())
這樣序列化之後最前面的字串就變成了a:
,然後再考慮如何繞過正規表示式,因為題目中只是過濾了o:\d:
模式串,我們只要破壞\d
就行了,php
的反序列化函式unserialize
的引數中的數字是可以有+
號的,所以我們在構造完payload
之後,在sofun
的序列化字串中把5
前面加上經過url
編碼之後的+
也就是%2b
即可,不要忘了把hitcon
物件序列化字串中表示引數長度的s
的值加1,然後我們就能順利得到flag
了。
payload
如下:
o:6:"hitcon":4:}'-- ";i:1;s:1:" ";}s:4:"conn";i:0;}
php反序列漏洞 例項 PHP反序列化漏洞
雖然胳膊廢了,也不能停止我更新的腳步。寫個簡單點的吧 0x00 何為類和物件 說到序列化和反序列化就不得不提到兩個詞 類和物件 那麼什麼是類,什麼是物件 教科書式的答案是類是物件的抽象,物件是類的例項 那啥叫個抽象,啥叫個例項呢 簡單的說,類就是物件的乙個標準模板,而物件就是按照模板做出來的實物 一...
PHP反序列化漏洞
序列化簡單利用 serialize 序列化 使用函式serialize 可將例項序列化為字串 unserialize 反序列化 使用函式unserialize 可將序列化的字串還原 示例 class example unserialize get code 漏洞利用 構造漏洞利用的 儲存為test....
PHP反序列化漏洞
前幾天安恆月賽兩道web題中有一道題是關於php反序列化的,然後剛好前幾天剛好看過這個知識點,於是乎這次比賽才沒有爆零,總算是寫出來了一道題 doge 所有php裡面的值都可以使用函式serialize 來返回乙個包含位元組流的字串來表示。unserialize 函式能夠重新把字串變回php原來的值...