題目:
新知識:
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...