WEB9-神奇的超全局变量-文件包含

<?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);");
} 

首先分析了一波,

以为和WEB8差不多,

代入发现还是很年轻,

WP

在eval处有两个$$符号,

这里涉及到PHP的变量问题(可变变量)

可变变量是一中独特的变量,它允许动态的改变一个变量名称。

工作原理是该变量的名称由另外一个变量值来确定,实现过程中就是在变量前面在加一个美元符号$

也就是给变量传一个全局数组变量, 构造?args=GLOBALS,拿到flag

原文地址:https://www.cnblogs.com/yunhai666/p/14787686.html