打开题目后是一段php代码:
flag In the variable !<?php
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args)){
die("args error!");
}
eval("var_dump($$args);");
}
?>
知识补充:
- int preg_match(string $pattern , string $subject):
这是php的正则表达式匹配函数,返回成功匹配的次数。还可以附加参数将匹配到的文本存入数组中,详细的话见手册。
代码分析:
提示flag隐藏在变量中,可以用GLOABALS找出flag。虽然代码的思路可以利用截断来输出flag,但是我们并不知道flag的变量名,无从下手。
paload:?args=GLOBALS