打开靶机,原以为是注入,尝试注入后无果后,查看代码源发现两处有用的信息。
先将calc.php输入url栏里打开,查看:
WAF源码,分析代码:
num
的值黑名单
的值num
中有黑名单包括的符号,将终止程序num
的内容WAF限制了参数num,将传入的参数‘num‘前添加空格,即‘? num‘可绕过WAF的判断。然后我们要列出参数目录中的文件和目录,
要不然我们怎么知道flag在哪,因此我们要用到函数scandir()。scandir() 函数返回指定目录中的文件和目录的数组。
var_dump() 函数用于输出变量的相关信息。
var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
? num=1;var_dump(scandir(chr(47)))
发现有flagg这个文件,他一应该就是目标了,我们要用file_get_contents()函数来查询信息
file_get_contents() 把整个文件读入一个字符串中。
该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。
? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
BUUCTF | [RoarCTF 2019]Easy Calc
原文:https://www.cnblogs.com/lthlsy/p/14371310.html