extract函數(shù)最容易出現(xiàn)的就是變量覆蓋的漏洞,該函數(shù)使用數(shù)組的鍵名作為變量名,鍵值作為變量值,
例如:
<?php
$a="I am flag";
$my_array=array("a"=>"Cat","b"=>"Dog");
extract($my_array);
echo "\$a=$a,\$b=$b";
?>

可以看到此時(shí)數(shù)組里的a被作為變量名重新被賦值為Cat,引發(fā)了變量覆蓋
當(dāng)有如下代碼時(shí)

可以看到當(dāng)temp的值和pass.txt的內(nèi)容一樣時(shí)才可以獲取flag,但是我們沒(méi)辦法知道pass.txt的內(nèi)容,此時(shí)構(gòu)造?temp=&content=

這是因?yàn)?_GET本身就是超全局?jǐn)?shù)組,在get了參數(shù)后extract把temp當(dāng)作鍵名,鍵值為空,同理content也被當(dāng)作鍵名,內(nèi)容為空,此時(shí)內(nèi)容是相等的繞過(guò)檢測(cè)