Extract()函數引發的變量覆蓋漏洞數組
該函數使用數組鍵名做爲變量名,使用數組鍵值做爲變量值。可是當變量中有同名的元素時,該函數默認將原有的值給覆蓋掉。這就形成了變量覆蓋漏洞。ide
1、咱們來查看一串代碼:
一、文件將get方法傳輸進來的值經過extrace()函數處理。
二、經過兩個if語句分別判斷是否存在gift變量,和變量gift的值和變量content的值是否相等。變量content的值是經過讀取變量test的值獲取到的。若是兩個變量相等輸出flag。若是不相等,輸出錯誤。函數
2、可是咱們並不知道test的值是什麼?因此咱們使用變量覆蓋漏洞,從新給test賦值。測試
例如:$GET[‘test’]=’a’,被extract()函數處理後,就變成了$test=’a’,有與之同名的變量$test = '';,將其值覆蓋掉。而且get方法傳輸的gift參數的值也爲a。這樣,$gift=$content。就能夠得到flag。code
構造咱們的payload:blog
Get方法傳值:?gift=a&test=a.
最後進行測試:
獲得咱們求之不得的flag。get