攻防世界之unserialize3

2021-10-10 14:26:46 字數 1183 閱讀 8953

題目:

新知識:

serialize:序列化函式,將物件轉化為可儲存可傳輸的字串

unserialize:反序列化,將字串轉為原來的物件

<?php $a=

array

('a'

=>

,'b'

=>

'banana'

,'c'

=>

'coconut');

//序列化陣列$s=

serialize($a

);echo$s;

echo''

;//反序列化$o=

unserialize($s

);print_r($o

);?>

被序列化的格式為

其中 表示陣列元素的個數,、…… 表示陣列下標,、…… 表示與下標相對應的陣列元素的值。

下標的型別只能是整型或者字串型,序列化後的格式跟整型和字串型資料序列化後的格式相同。

反序列化漏洞有關的魔術方法

__wakeup

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

__construct

具有建構函式的類會在每次建立新物件時先呼叫此方法。

__destruct會在到某個物件的所有引用都被刪除或者當物件被顯式銷毀時執行。

__tostring

用於乙個類被當成字串時應怎樣回應。

開發人員疏忽未對使用者輸入的序列化字串進行檢測時,就可能導致攻擊者可以控制反序列化過程,從而達到**執行、檔案操作等攻擊行為。

例如,在此題中n的若不符合正常情況,將會繞過__wakeup方法

我們構造?code=o:4:"xctf":3:n本應為1但改為2

得到flag啦~

攻防世界WEB高階之unserialize3

難度係數 1星 題目描述 暫無 題目僅僅給出了乙個場景開啟場景看到了如下內容 class xctf code 通過分析在瀏覽器位址框輸入 位址 code 0,發現0出現在code後面。所以我們輸入的字段會直接傳到code中。根據題給的資訊unserialize,序列化操作我們聯想到序列化函式 ser...

攻防世界之Web python template

之前做過一次python沙盒逃逸的題,但是當時只是看wp沒有仔細地深入,這次仔細的 一下這個漏洞的原理和防禦。在這裡只是寫一點開端,後續再深入,因為我看資料發現這個漏洞牽扯到的東西挺多的。web python template injection python模組注入 python沙河逃逸 fire...

攻防世界之warmup

題目 只有一張沒顯示好的,右鍵檢視源 提示source.php,訪問該頁面 接下來進行 審計 highlight file file class emmm page一定不能為空,且為字串if in array page whitelist 此處若在白名單內,則直接返回true page mb sub...