[红明谷CTF 2021]write_shell
考的是php里的绕过,因为正则过滤了php ; ~ eval等字符,所以php标签<?php?>
写入不了
https://xz.aliyun.com/t/8107#toc-11这个文章讲绕过讲的挺详细的
对于这道题目可以用<?= ?>
代替php标签。<?= ?>
短标签会直接把php的结果输出,<? ?>
的功能则和<?php?>
完全一样。过滤空格可以用\t绕过,或者%09也是tab的URL编码。php反引号中的字符串会被当作命令执行。
?action=upload&data=<?=`ls\t/`?>
结果会写在pwd查到的文件夹下的index.php文件里
本来想再试试取反和异或绕过的,这两个都算是万金油绕过方式了,但是在这里都被禁了。那就贴一个求异或绕过的脚本吧
<?php
$shell = "phpinfo()";
$result1 = "";
$result2 = "";