最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

【天天播资讯】命令执行中cat 和tac的区别

来源:博客园


(资料图片仅供参考)

命令执行中cat 和tac的区别

导引

在最近的一道简单的命令执行题目中当使用?c=system("cat f");时,发现并不能在网页上显示内容,而如果使用?c=system("tac f");时,内容就能显示出来

分析

正则过滤了flag,我们可以使用通配符 "*" 或者匹配符 "?" 绕过

c?=syetem("ls ");//查看一下文件//存在两个文件,flag.php index.php 

尝试查看flag.php ,?c=system("cat f");发现页面没有显示,使用?c=system("tac f");正常显示

原因

首先查找一下cat 和tac 命令的区别

cat:命令cat用于查看一个文件的内容并显示在屏幕上,cat后面可以不加任何选项直接跟文件名。

tac:命令tac也是把文件的内容显示在屏幕上,只不过是先显示最后一行,然后显示倒数第二行,最后才显示第一行。

而我们题目flag存在一个php文件中,如果我我们使用cat查看的话,那么还是按照

而tac命令刚好可以通过倒序输出,而避开

总结

当在做题过程中如果flag存在一个php文件中,而我们要通过读取文件来获得flag时,我们可以使用tac命令来倒序显示内容,而不按照php格式来打开文件。具体情况还需要根据具体题目来分析。

关键词: