<?php
include "flag.php";
$a = @$_REQUEST['hello'];
if(!preg_match('/^\w*$/',$a )){
die('ERROR');
}
eval("var_dump($$a);");
show_source(__FILE__);
?>
$a = @$_REQUEST['hello']; 表明它会接收一个 hello的参数
eval(string $code
)把里面的字符串code当做PHP代码来执行,所以会执行var_dump($$a);
var_dump() 函数用于输出变量的相关信息。
$a = hello; 所以$$a = $hello
因为提示flag在变量中,php获取变量的值 有个超全局数组 $GLOBALS ,所以就
让hello提交的参数为GLOBALS