RoarCTF 2019 - Easy Calc

Easy Calc

网页上有个计算器,可以计算数字算法

查看源码:

RoarCTF 2019 - Easy Calc

有WAF

RoarCTF 2019 - Easy Calc

注意到这里有个calc.php访问:

RoarCTF 2019 - Easy Calc

源码有过滤,这里的话num只能输入数字,字母无法输入

 

补充知识:

正则匹配:/m 表示多行匹配

PHP字符串解析特性绕过WAF

输入时发现num只能输入数字,输入字符无法解析。
PHP需要将所有参数转换为有效变量名,因此在解析查询字符串时,它会做两件事:1,删除空白字符;2,将某些字符转换为下划线(包括空格)

现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样代码还能正常运行,还上传了非法字符。

scandir()函数:返回指定目录中的文件和目录的数组

var_dump():输出变量的相关信息

 

扫描目录无结果果

RoarCTF 2019 - Easy Calc

构造payload,num前面加空格绕过限制上传字符:由于scandir("/")能扫描根目录,但是过滤了"/",就使用ASCII值绕过

RoarCTF 2019 - Easy Calc

发现文件f1agg,读取:

RoarCTF 2019 - Easy Calc

RoarCTF 2019 - Easy Calc

 

上一篇:蓝桥杯 黑色星期五(Java)


下一篇:Mysql:性能分析