打开网页看到源码
可知有文件包含漏洞,以前已经学过
同时可get名为hello的变量
因为var_dump()
的功能是输出变量的信息
所以如果变量为函数就会执行函数
可以看到flag.php
据此有如下方法查看flag.php:
几种方法
- 使用
system()
函数执行命令cat flag.php
但当我们执行时发现输出了 **"?>"**猜测可能由于正着读eval()
函数解析了php页面可以使用 tac命令倒着读,即:
tac flag.php
从后往前看,确实前面被执行了,但var_dump()
函数没有返回值不会打印所以会显示 "?>"
2.使用file()
命令将flag.php
以文件形式打开
3.使用任意文件读绕过
4. 因为已知页面有show_source()
函数,可以使用show_source('flag.php')
直接查看flag.php
页面
5. 重新定义变量$v
,并打印$v
6. 使用print_r()
函数,第一遍刷新两遍,第一遍给hello赋值,第二遍时才显示。
此时源码中也可看到: