PHP中var_dump、&&和GLOBALS的爱恨纠缠
var_dump函数:用来打印显示一个变量的内容与结构;
&&:定义一个可变变量。php中,在定义变量时,需要在前面加上一个“&”符号,当加上两个“&&”符号时,就定义了一个可变变量。可变变量的名称,有另一个变量的值确定。eg:&a 定义了一个普通变量;&&b 定义了一个可变变量;如果我们令b这一个可变变量的值等于a,则在这里&a等同于&&b;
DLOBALS:一个包含了全部变量的全局组合数组
下面是bugku上面的一道题,就是完美的运用了这三个方法。
首先看到要用get方式提交一个args参数,而在最后一行代码里又有var_dump(&&args),于是传入args参数的值为GLOBALS,这样最后一行代码就变成了var_dump(&GLOBALS),然后var_dump函数运行会输出所有变量,得出flag。
(ps:本人太菜,若有错误的地方欢迎大佬随时责骂。。。。xixixii)