当渗透测试或者打CTF时,目标环境中存在waf或者一些过滤不允许执行一些查看文本命令,可以通过如下其他的未过滤命令进行利用
1、倒叙显示全文本--tac
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
tac file
2、分页显示文本--more
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
1.显示内容
more file
之后,就可以使用按键来查看文本。常用按键如下:
回车 #向下n行,默认为1行
空格 #向下滚动一屏
b #向上滚动一屏
= #输出当前行号
:f #输出当前文件名和当前行号
q #退出
2.从指定行开始显示
more +10 file # 该命令从第10行开始显示file的内容。
3.从匹配的字符串行开始显示
more +/string file # 该命令从有string的行的前两行开始file的内容。
3、任意浏览搜索文本--less
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
less file #浏览file
less -N file #浏览file,并且显示每行的行号
less -m file #浏览file,并显示百分比
常用按键如下:
f #向前滚动一屏
b #向后滚动一屏
回车或j #向前移动一行
k #向后移动一行
G #移动到最后一行
g #移动到第一行
/string #向下搜索string,n查看下一个,N查看上一个结果
?string #向上搜索string,n查看下一个,N查看上一个结果
q #退出
另外,less还能在多个文件间切换浏览:
less file1 file2 file3
:n #切换到下一个文件
:p #切换到上一个文件
:x #切换到第一个文件
:d #从当前列表移除文件
4、显示文本头部内容--head
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。
head -n 100 file #显示file的前100行
head -n -100 file #显示file的除最后100行以外的内容。
5、显示文本尾部内容--tail
和head命令类似,只不过tail命令用于读取文本尾部部分内容:
tail -100 file #显示file最后100行内容
tail -n +100 file #从第100行开始显示file内容
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
tail -f logFile # 对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
6、指定顺序显示文本--sort
sort可用于对文本进行排序并显示,默认为字典升序。
例如有一段文本test.txt内容如下:
vim
count
fail
help
help
dead
apple
1.升序显示文本,使用命令:sort test.txt
apple
count
dead
fail
help
help
vim
2.降序显示,相关参数-r:使用命令:sort -r test.txt
vim
help
help
fail
dead
count
apple
3.去掉重复的行
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:sort -u test.txt
apple
count
dead
fail
help
vim
可以看到help行不再重复显示。
7、过滤显示文本--sed
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
1.显示匹配关键字行
有时候查看日志,可能只需要查看包含某些关键字的日志行:
sed -n "/string/p" logFile # 表示打印包含string的行。
2.打印指定行
sed -n "1,5p" logFile #打印第1到5行
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
sed -n "10p" logFIle #打印第10行
8、去重显示文本--uniq
常见用法如下:
uniq file #去除重复的行
uniq -c file #去除重复的行,并显示重复次数
uniq -d file #只显示重复的行
uniq -u file #只显示出现一次的行
uniq -i file #忽略大小写,去除重复的行
uniqe -w 10 file #认为前10个字符相同,即为重复
9、文本编辑查看--vi / vim
查看文件也很简单:
vi flag.txt
或者
vim flag.txt
10、合并文件的列--paste
Linux paste 命令用于合并文件的列。paste 指令会把每个文件以列对列的方式,一列列地加以合并。
paste flag.txt /etc/passwd
11、比较文件的差异--diff
diff 以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。
diff flag.txt /etc/passwd
12、八进制字码呈现输出文件内容--od
od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。
od -a flag.txt
13、查看bzip2压缩过的文本文件--bzmore
bzmore命令用于查看bzip2压缩过的文本文件的内容,当下一屏显示不下时可以实现分屏显示。
bzmore flag.txt
14、输出行号查看--nl
查看文档的时候顺便输出行号
nl flag.txt
15、打开文件查看--file
通过file命令打开每一行的文件产生报错,从而查看了每一行的内容。
file -f flag.txt