[RoarCTF 2019]Easy Calc
1、打开之后检查源代码信息,发现calc.php文件,结果如下:
2、分析代码信息,显示存在num参数,那就传输num参数进行尝试,发现传输num参数时仅可传输数字型参数,当传入字符型时会显示禁止访问,根据第一步的waf提示,想到这里应该是被waf给过滤了,过程如下:
3、根据源代码信息我们最终肯定要通过eval函数来执行命令代码,因此现在就需要来绕过对字符串的检测,num=a时被拦截,那waf肯定接受了num参数并进行了检测,那我们根据php的解析规则:这里借用一个图说明,具体的可以去了解php解析规则,结果如下:
4、实现绕过之后那就开始读取当前的目录信息,获取flag文件的信息,结果如下:
5、获得f1agg文件名称后就读取文件信息内容,payload:?+num=2;print_r(readfile(chr(47).f1agg));或?+num=file_get_contents(chr(47).f1agg),结果如下: