1. 程式人生 > >變量覆蓋漏洞----extract()函數

變量覆蓋漏洞----extract()函數

web 變量覆蓋

Extract()函數引起的變量覆蓋漏洞

該函數使用數組鍵名作為變量名,使用數組鍵值作為變量值。但是當變量中有同名的元素時,該函數默認將原有的值給覆蓋掉。這就造成了變量覆蓋漏洞。

一、我們來查看一串代碼:
技術分享圖片
1、文件將get方法傳輸進來的值通過extrace()函數處理。
2、通過兩個if語句分別判斷是否存在gift變量,和變量gift的值和變量content的值是否相等。變量content的值是通過讀取變量test的值獲取到的。如果兩個變量相等輸出flag。如果不相等,輸出錯誤。

二、但是我們並不知道test的值是什麽?所以我們使用變量覆蓋漏洞,重新給test賦值。

例如:$GET[‘test’]=’a’,被extract()函數處理後,就變成了$test=’a’,有與之同名的變量$test = ‘‘;,將其值覆蓋掉。並且get方法傳輸的gift參數的值也為a。這樣,$gift=$content。就可以獲得flag。

構造我們的payload:

 Get方法傳值:?gift=a&test=a.

最後進行測試:
技術分享圖片
得到我們夢寐以求的flag。

變量覆蓋漏洞----extract()函數