RoarCTF 2019 - Easy Calc

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,读取:

 

posted @ 2020-06-11 09:56  ch0bits  阅读(2163)  评论(0编辑  收藏  举报