網鼎盃 反序列化題

2021-10-06 18:39:44 字數 1384 閱讀 7739

<?php

include

("flag.php");

//當前目錄下是存在 flag.php檔案的

highlight_file

(__file__);

class

filehandler

public

function

process()

elseif(

$this

->

op==

"2")

else

}private

function

write()

$res

=file_put_contents

($this

->

filename

,$this

->

content);

if($res

)$this

->

output

("successful!");

else

$this

->

output

("failed!");

}else

}private

function

read()

return

$res;}

private

function

output($s

)function

__destruct()

}function

is_valid($s

)if(isset

($_get))

}

===:在php中是判斷型別和值是否相當,相等返回true,否則false.

==: 存在弱型別判斷,型別繞過,乙個字串和整形的判斷,1 == 『1』 返回true.

現在利用 php的serialize()函式

serialize():序列化 將陣列轉為字串,生成個例項化類的物件.

<?php

class

filehandler$b=

newfilehandler;$b

=serialize($b

);echo$b;

echo''

;$b=unserialize($b

);var_dump($b

);echo''

;print_r($b

);?>

序列化後的:o:11:「filehandler」:2:

因為這裡的變數的是受保護型別,這裡序列化後的結果還需改下.

payload: o:11:「filehandler」:2:

獲取flag~~

序列化反序列化

只要用到網路開發啊,就一定會用到序列化反序列化。1,自定義結構體 struct test int len int type char data 10 test data test buffer.缺點 明文,只支援基本型別,不支援變長結構 2,在1的基礎上,自定義乙個緩衝類,存放乙個訊息。把訊息寫入緩...

序列化反序列化

using system using system.collections.generic using system.io using system.linq using system.text using system.threading.tasks namespace 序列化反序列化 syste...

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...