extract變量覆蓋
extract變量覆蓋
50
http://123.206.87.240:9009/1.php
<?php
$flag='xxx';extract(
shiyan))
{
flag));
if(content)
{
echo'flag{xxx}';
}
else
{
echo'Oh.no';
}
}
?>
1.代碼審計
extract()函數(shù)從數(shù)組中將變量導(dǎo)入到當(dāng)前的符號表,該函數(shù)使用數(shù)組鍵名作為變量名,使用數(shù)組鍵值作為變量值;
isset()函數(shù)判斷是否存在變量
$shiyan;trim()函數(shù)移除字符串兩側(cè)的空白字符或其他預(yù)定義字符 ,這里是移除字符串兩側(cè)的空格;file_get_contents()函數(shù)將整個文件讀入一個字符串;假如
$shiyan的值等于文件的內(nèi)容($content)時,就打印出flagtrim()移除字符串兩側(cè)的字符("Hello" 中的 "He" 以及 "World" 中的 "d!"):
抱著嘗試的心理 傳入一個 shiyan
即 http://123.206.87.240:9009/1.php?shiyan
直接得到 flag{bugku-dmsj-p2sm3N}