[电信互联网行业竞赛]bestphp

发布于 2023-11-06  106 次阅读


打开靶机,可以看到

img

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?????`?>

img

得到flag