系统操作链接符

链接符

  1. ;
  2. &
  3. &&
  4. |
  5. ||

;

使多个命令按顺序执行,前面的命令和后面的命令都会执行

1
?cmd=id;pwd;ls 命令会按照顺序进行,无论命令是否出错不会影响其他命令的正常执行

&

使命令在后台运行,这样就可以同时执行多条命令

使用时必须进行URL编码

1
2
?cmd=&id 无法执行
?cmd=%26id 正常执行
1
?cmd=id&pwd&ls 命令同时执行,无论命令是否出错不会影响其他命令的正常执行

&&

如果前面的命令执行成功,则执行后面的命令。

如果前面命令执行失败,则后续命令不会执行

使用时必须进行URL编码

1
2
?cmd=ls%26%26id 正常执行
?cmd=ls666%26%26id 无法执行

|

将前面的命令的输出作为后面命令的输入,把前面命令的结果当做后面命令的参数;

前面的命令和后面的命令都会执行,但只显示后面的命令执行结果

1
2
3
输入 echo "ls -l"  			输出 ls -l
输入 /bin/bash -c ls -l 输出目标目录文件名
输入 echo "ls -l"| /bin/bash 输出目标目录文件名

||

类似于程序中的if-else语句

若前面的命令执行成功,则后面的命令不会执行;

若前面的命令执行失败,则后面的命令执行。

1
2
?cmd=ls || id  ls成功执行,则id不会执行
?cmd=ls66 ||id ls66执行失败,则id执行