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()函数从数组中将变量导入到当前的符号表,该函数使用数组键名作为变量名,使用数组键值作为变量值;
isset()函数判断是否存在变量
$shiyan
;trim()函数移除字符串两侧的空白字符或其他预定义字符 ,这里是移除字符串两侧的空格;file_get_contents()函数将整个文件读入一个字符串;假如
$shiyan
的值等于文件的内容($content
)时,就打印出flagtrim()移除字符串两侧的字符("Hello" 中的 "He" 以及 "World" 中的 "d!"):
抱着尝试的心理 传入一个 shiyan
即 http://123.206.87.240:9009/1.php?shiyan
直接得到 flag{bugku-dmsj-p2sm3N}