题目网页是一个计算器
查看源代码发现线索calc.php
直接访问
这里eval对get的内容执行,尝试注入php代码
前面也说了waf,我们这里利用php解析字符串的特性来绕过
PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:
1)删除空白符
2)将某些字符转换为下划线(包括空格)
图片来源博客PHP字符串解析特性 ($GET/$POST参数绕过)(含例题 buuctf easycalc)_bin789456的博客-优快云博客_php字符串解析特性
所以在num前面加一个空格%20num,waf会认为不是num,但是PHP解析后还是num,绕过waf,可以查看phpinfo()。
可以看到很多函数不能用,这里使用print_r(或者var_dump)来显示,当前目录用scandir(/),/被屏蔽就用chr(47)
看见了flag,查看文件用file_get_content()(或者highli_file())