点击题目链接,我们发现页面代码中相较上关卡添加了括号过滤,这意味着我们不能使用passthru函数执行命令。
过滤 ;可以使用 ?>,让代码在php结构中的最后一行(php最后一行代码末尾无分号;也可执行)
过滤 ( 导致不能使用 passthru 函数,从而导致无法使用系统命令。此时我们可以使用反引号进行绕过
在php中,反引号中的内容将会被作为shell命令执行,其输出信息将会被返回。即 `ls` 等同于 shell_exec('ls')
此时构造url语句,查询当前文件夹下有哪些文件: ?c=echo `ls`?>
发现当前文件夹下有两个文件,此时可以通过 tac * 查看所有文件的内容,构造url语句 ?c=echo `ls`?>