您好,登錄后才能下訂單哦!
Extract()函數(shù)引起的變量覆蓋漏洞
該函數(shù)使用數(shù)組鍵名作為變量名,使用數(shù)組鍵值作為變量值。但是當(dāng)變量中有同名的元素時(shí),該函數(shù)默認(rèn)將原有的值給覆蓋掉。這就造成了變量覆蓋漏洞。
一、我們來(lái)查看一串代碼:
1、文件將get方法傳輸進(jìn)來(lái)的值通過(guò)extrace()函數(shù)處理。
2、通過(guò)兩個(gè)if語(yǔ)句分別判斷是否存在gift變量,和變量gift的值和變量content的值是否相等。變量content的值是通過(guò)讀取變量test的值獲取到的。如果兩個(gè)變量相等輸出flag。如果不相等,輸出錯(cuò)誤。
二、但是我們并不知道test的值是什么?所以我們使用變量覆蓋漏洞,重新給test賦值。
例如:$GET[‘test’]=’a’,被extract()函數(shù)處理后,就變成了$test=’a’,有與之同名的變量$test = '';,將其值覆蓋掉。并且get方法傳輸?shù)膅ift參數(shù)的值也為a。這樣,$gift=$content。就可以獲得flag。
構(gòu)造我們的payload:
Get方法傳值:?gift=a&test=a.
最后進(jìn)行測(cè)試:
得到我們夢(mèng)寐以求的flag。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。