开卷看题
/%E5%8F%98%E9%87%8F1/1.png)
源码审计
代码分析
1 |
|
总结:如果args参数只有数字、字母和下划线时以代码执行
由于不能存在空格之类的特殊字符,所以flag1文件中应该是定义了全局变量(页面中提示我们flag in variable)
寻找真相
PHP中预定义了一组超变量,其中就有一个$GLOBALS存储了系统全局变量,可以尝试读取此变量的值
更多信息参考:传送门
同时可以看到源码中使用了两次引用,所以最终payload为:GLOBALS
/%E5%8F%98%E9%87%8F1/3.png)
Note:PHP的$符号类似于指针引用并且做了加强,很是方便并且灵活性也很高
面壁思过
在写这篇博文时,尝试payload却总是失败,放出图片你们帮我看看是为什么
/%E5%8F%98%E9%87%8F1/2.png)
总结
知识无小事,基础很重要
温故而知新,才能更长远
好高又骛远,到头一场空