过滤了flag
本题作为命令执行的开始比较简单,仅仅过滤了flag,所以我们可以用直接系统命令绕过,但由于过滤了flag,所以得使用通配符?和*
以下的解法思路比较重复,就是看一下有那些系统命令。
解法1
然后查看源代码
解法2
解法3
解法4
然后查看源代码
解法5
然后查看源代码
解法6
解法7
解法8
然后查看源代码
解法9
然后查看源代码
解法10
然后查看源代码
可以看出命令执行的答案并不唯一,能否做出就取决于你对命令的积累
一下就是本题我所用到的命令
system(""); //有回显
passthru(""); //有回显
echo``; //echo``;等于echo shell_exec(""); 有回显
exec(""); //单独使用无回显,配合echo有回显,echo exec("");
shell_exec(""); //单独使用无回显,配合echo有回显,echo shell_exec("");
除了以上命令外,解题还用到了一些linux命令
1.直接查看文件内容
cat 功能:查看目标文件的内容
tac 功能:tac刚好是将cat 反写过来,所以他的功能就跟 cat相反。cat 是由第一行到最后一行连续显示在屏幕上,而tac则是由最后一行到第一行反向在屏幕上显示出来。
nl 功能:添加行号打印。
2.翻页查看文件内容
more 功能:more命令,功能类似 cat,只不过对于cat来说,他在看文件时是直接从最后开始看
less 功能:less也是一页一页翻动,那和more有什么区别呢,使用more 的时候,我们不能向前面翻,只能往后面查看,但若使用了 less,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件。
以上就是我在本题中的用到和自学到的命令,每天一题,不断积累。