百度杯”CTF比赛 2017 二月场 Web-爆破-1

<?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

猜你喜欢

转载自blog.csdn.net/weixin_40729735/article/details/102795482