解题思路※

打开网页发现是一个执行器,有个淡淡的灰色字提示我们输入
echo 'hello world'输入进去试试

这里有个英文提示,说无效字符,只有字母,数字,下划线,和括号和花括号可以输入进去
那限制其实还好,没有限制很多东西,我们直接试试system函数看看能不能直接执行shell命令

引号被过滤了,去掉看看

有一个告警,但是成功执行了,可以看到这个目录下面有flag.php index.php
那我们直接cat看看

空格被过滤了,用制表符替代\t

发现也不行,换个方法,使用php自带的函数来实现获取
首先调试要用print_r()

没有问题,接下来获取当前的路径
getcwd()
扫描当前目录下的文件
scandir(getcwd())
为方便取值,我们把它到转过来
array_reverse(scandir(getcwd()))
接下来去取第二个值
next(array_reverse(scandir(getcwd())))
show_source()函数实现展示源代码
show_source(next(array_reverse(scandir(getcwd()))))
获取到了flag,但是貌似这个不是他最优解?
方法2:※
看到eval,可以使用php://伪协议直接读取当前目录下的文件