反序列化
序列化漏洞+例項
函式同名方法利用
反序列化逃逸
<?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']=
;$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檔案中,有的物件內容需要使用,但是使用的頻率不高,將 存放的話會占用系統資源,但是刪除則下次使用時就要重新碼增加了負擔,所以序列化就幫助程式設計師解決了這個問題,它可以將不常用的 進行序...