打开靶机,可以看到
flag放在根目录下的flag.php里,需要通过命令执行得到flag,利用php代码中的eval()函数
首先看正则过滤,基本上都过滤完了,但还留有 a
| ?
|>
|:
|/
这几个字符
echo命令用 '
|"
包裹了,需要对其进行闭合之后再RCE
可以通过三目运算符判断的方法来执行我们想执行的命令
a?a:b
当a
运算结果为true
时,会输出a
,否则就会输出b
,因为有字符限制,可以简写为
a?:b
在liunx中,反引号`
包裹的语句直接运行,?
*
为匹配符,?
可匹配一个字符,*
可匹配多个字符
构造payload,加上?>
来闭合php文件
?a='?:`/???/?a?%20??a?????`?>
得到flag
Comments NOTHING