浅谈命令执行中cat和tac的区别"/>
浅谈命令执行中cat和tac的区别
最近在写web中的命令执行题目,对同一个include()指令,我发现两次不同的输入:
?c=data://text/plain,<?php%20system("tac%20fl*.*");?>
?c=data://text/plain,<?php%20system("cat%20fl*.*");?>
最后都能的得到flag,但是区别是tac输入后直接就把flag显示出来了,而cat需要我们查看源代码。
这是为什么呢?
对比两者的源代码,我们发现,cat指令把flag.php的内容导出后依然遵循php的语法,那么没有echo语句,就无法显示,而tac指令将一切倒过来后:就不是php语句了,在html语句里就就会直接显示出来。
更多推荐
浅谈命令执行中cat和tac的区别
发布评论