PHP反序列化逃逸總結

2022-05-15 01:46:41 字數 693 閱讀 2725

<?php

function filter_short($img)

function filter_long($img)

extract($_post);

if(!$_get['cmd'])else

$serialize_by_short = filter_short(serialize($_session));

$userinfo = unserialize($serialize_by_short);

//$serialize_by_long = filter_long(serialize($_session));

//$userinfo = unserialize($serialize_by_long);

@eval(base64_decode($userinfo['cmd']));

// $target_payload = 'system("cat /flag");';

我們的目標是要得到這樣的乙個array,才會實現執行。其序列化資料為:

array(1) 

//a:1:

而題目中的cmd我們是不可控的。但我們可以利用變數覆蓋,來控制$_session的其它資料。

也是是題幹中的filter_short函式。將php/flag等關鍵字替換為空。這樣就會破壞掉反序列化的結構。

php反序列化總結

反序列化漏洞黑盒很難發現,即使發現了也好難利用。不過危害很大。序列化使用函式serialize 來返回乙個包含位元組流的字串來表示。unserialize 函式能夠重新把字串變回php原來的值。序列化乙個物件將會儲存物件的所有變數,但是不會儲存物件的方法,只會儲存類的名字。序列化結果 string ...

PHP反序列化

php反序列化漏洞 一 序列化定義 序列化 serialization 在電腦科學的資料處理中,是指將資料結構或物件狀態轉換成可取用格式 例如存成檔案,存於緩衝,或經由網路中傳送 以留待後續在相同或另一台計算機環境中,能恢復原先狀態的過程。概念很容易理解,其實就是將資料轉化成一種可逆的資料結構,自然...

php反序列化

php序列化 將物件或變數轉換成字串。php反序列化 是將字串轉換成原來的變數。serialize serialize 函式用於序列化物件或陣列,並返回乙個字串。serialize 函式序列化物件後,可以很方便的將它傳遞給其他需要它的地方,且其型別和結構不會改變。sites array google...