1.打开页面发现有一个输入框
2.输入相应数学算式能够给出结果
3.打开页面源代码看看有没有什么线索
4.这里发现代码验证在前端提到了一个calc.php,访问一下看看
5.可以看到这里给出了一个黑名单验证,过滤了一些字符,尝试构造payload
num=2;var_dump(scandir(chr(47)))
var_dump() :显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
scandir():返回一个数组,其中包含指定路径中的文件和目录
由于黑名单过滤掉了符号,我们使用ascii码进行代替
6.页面打开后发现被拦截了,应该是前端WAF验证没通过
7.又看了一眼前端代码,在payload中将num改成 num(前面加一个空格),再次尝试
8.访问成功了,页面列出了一些目录和文件名信息,从中我们发现了f1agg
9.构造查询flaggg的payload如下
? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
file_get_contens():读取本地文件的内容
chr(47).chr(102).chr(49).chr(97).chr(103).chr(103):是/flagg的ascii码
10.成功查询到flag了