Easy Calc
之前RCTF在这个基础上出过一个更难的题,这次暂时先来解决原题
网页上有个计算器,可以计算数字算法
查看源码:
有WAF
注意到这里有个calc.php访问:
源码有过滤,这里的话num只能输入数字,字母无法输入
补充知识:
正则匹配:/m 表示多行匹配
PHP字符串解析特性绕过WAF 输入时发现num只能输入数字,输入字符无法解析。 PHP需要将所有参数转换为有效变量名,因此在解析查询字符串时,它会做两件事:1,删除空白字符;2,将某些字符转换为下划线(包括空格) 现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样代码还能正常运行,还上传了非法字符。
scandir()函数:返回指定目录中的文件和目录的数组
var_dump():输出变量的相关信息
扫描目录无结果果
构造payload,num前面加空格绕过限制上传字符:由于scandir("/")能扫描根目录,但是过滤了"/",就使用ASCII值绕过
发现文件f1agg,读取: