web9--bugku

`flag In the variable !` <?php        ##flag在变量中

error_reporting(0);      ## 设置应该报告何种 PHP 错误,0为关闭所有PHP错误报告
include "flag1.php";      ##包含并运行指定文件。
highlight_file(__file__);    ##对文件进行语法高亮显示
if(isset($_GET['args'])){    ##检测变量是否设置。
    $args = $_GET['args'];    ##收集来自 method="get" 的表单中的值
    if(!preg_match("/^\w+$/",$args)){    ##输入的变量没有规定字符(大写小写数字)或者多余字符则变量错误,^开始,\w表示任意一个单词字符,即[a-z][A-Z][0-9],+将前面的字符匹配一次或多次,$/结束。后面的args变量是被匹配的。
        die("args error!");    ##变量错误
    }
    eval("var_dump($$args);");    ##显示变量的变量
}
?>

又因为题目提示我们flag在变量中,所以我们想到全局变量GLOBALS,GLOBALS并没有超出大小写数字的范围,而直接使用flag.php会有.这个符号,没有匹配到,所以会显示变量错误。

posted @ 2021-02-25 22:24  网抑云黑胶SVIP用户  阅读(163)  评论(0编辑  收藏  举报