bugku—Web—CTF--变量1

拜拜、爱过 提交于 2020-02-26 01:18:02

这种题目纯属考察PHP的基础知识

超级全局变量GLOBALS的用法

 

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

 

提示说flag在变量里面,经分析只要运行 eval("var_dump($$args);");,falg很有可能就会出来

$$args====>我们可以猜想$args很有可能是一个数组,应该想到的就是超全局变量$GLOBALS

他是用存储全局变量的,全局变量的值在这个超级全局变量里面是一个键值,先当于hashmap的键值对

全局变量可以通过变量名在$GLOBALS找到相对应的值。

 

eval()这个函数的作用是字符串里面的php代码按正常的php代码被执行

通过构造一个GET参数,直接传GET一个全局变量即可

http://123.206.87.240:8004/index1.php?args=GLOBALS

拿到FLAG..

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!