pikachu靶場 十二 PHP反序列化

2021-10-02 12:04:46 字數 1963 閱讀 1471

在理解這個漏洞前,你需要先搞清楚php中serialize(),unserialize()這兩個函式。

序列化serialize()

序列化說通俗點就是把乙個物件變成可以傳輸的字串,比如下面是乙個物件:

classs$s

=news(

);//建立乙個物件

serialize($s

);//把這個物件進行序列化

序列化後得到的結果是這個樣子的:o:1:

"s":1:

o:代表object

1:代表物件名字長度為乙個字元

s:物件的名稱

1:代表物件裡面有乙個變數

s:資料型別

4:變數名稱的長度

test:變數名稱

s:資料型別

7:變數值的長度

bihuoedu:變數值

反序列化unserialize()就是把被序列化的字串還原為物件,然後在接下來的**中繼續使用。

$u

=unserialize

("o:1:"s":1:");

echo$u-

>

test

;//得到的結果為bihuoedu

序列化和反序列化本身沒有問題,但是如果反序列化的內容是使用者可以控制的,且後台不正當的使用了php中的魔法函式,就會導致安全問題。

常見的幾個魔法函式:

__construct()當乙個物件建立時被呼叫

__destruct()當乙個物件銷毀時被呼叫

__tostring()當乙個物件被當作乙個字串使用

__sleep() 在物件在被序列化之前執行

__wakeup將在序列化之後立即被呼叫

漏洞舉例:

檢視後端源**。

模仿上圖**自己構造生成乙個反序列化的字串。

提交,xss攻擊成功。

// 當他的物件被輸出時候,呼叫__tostring

class

fileclass

}class

user

}$obj

=unserialize

($_get

['user_serialize'])

;echo

$obj

;// 序列號 把物件轉換成位元組流

// serialize($obj)

// 反串行號 把位元組流轉換成物件

// unserialize($obj)

審計**,構造自己的反序列化的字串。

提交即可檢視相應檔案。

pikachu靶場 暴力破解

接下來我們開始進入pikachu的學習了。將其放入www檔案下即可,在此我就不贅述了,網上的教程很多。暴力破解 burte force 暴力破解 概述 暴力破解 是一攻擊具手段,在web攻擊中,一般會使用這種手段對應用系統的認證資訊進行獲取。其過程就是使用大量的認證資訊在認證介面進行嘗試登入,直到得...

pikachu靶場 目錄遍歷和敏感資訊洩露

開啟pikachu靶場,點選頁面的超連結,可以發現url中的title上傳了乙個檔名到後台,後台讀取後返回資料到前端 接下來,我們可以像檔案包含漏洞的操作一樣,通過輸入payload跳轉到後台伺服器的根目錄下,獲取我們想要的檔案資訊 注 輸入的payload得是後台伺服器對應系統的目錄路徑 wind...

pikachu靶場之SSRF漏洞 文本版,無實操

源 有問題,所以我就口訴一下吧 本題目應用的是curl exec 函式,在本題中,客戶端使用get方法提交的url引數和內容,下一段就是會把使用者提交請求的url返回客戶端去執行 即伺服器是應用函式curl exec 執行的 假如在同伺服器或一組伺服器內除了我們正在使用的這個平台的伺服器端可能還有其...