远程命令执行/命令注入 之 命令连接符

本文深入探讨了Windows 10和Kali Linux中远程命令执行所涉及的命令连接符,包括|、||、&&和;。通过实例展示了这些连接符如何影响命令的执行顺序及条件。文章还使用ping和whoami命令进行了实际操作,以演示各种连接符在不同系统中的行为,并解释了为何选择这两个命令进行演示。

目录

一、理论

二、实践

windows 10

a | b

a || b

a && b

a & b

kali linux

a | b

a || b

a && b

a ; b


一、理论

远程命令执行可以用到的命令连接符,windows系统和linux系统各有4个,其中3个是共有的,各有1个是特有的:

  • windows系统:| ||&&&
  • linux系统:| ||&&;

各连接符含义如下:

  • |

管道操作符

可以把前一个命令的标准输出传输到后一个命令的标准输入

比如 a | b表示命令a的输出作为命令b的输入

在远程命令执行中,不管a的执行结果是否正确,b都可以执行

  • ||

逻辑或

注意该命令有短路的情况

比如 a || b,如果命令a执行成功,则命令b不会被执行;只有命令a执行失败的情况下,才会执行命令b

  • &&

逻辑与

注意该命令有短路的情况

比如 a && b,如果命令a执行失败,则命令b不会被执行;只有命令a执行成功的情况下,才会执行命令b

  • &

windows特有

允许在一行内从左向右顺序执行多条命令,前一条命令失败也不影响后一条命令的执行

比如 a & b,不管a是否执行成功,b命令都会执行

  • ;

(可能看不清,这是个分号)

linux系统特有

允许在一行内从左向右顺序执行多条命令,前一条命令失败也不影响后一条命令的执行

比如 a ; b,不管a是否执行成功,b命令都会执行

二、实践

下面分别在windows 10和kali linux中演示一下上面说的内容。

演示的时候用到的命令a为ping命令,命令b为whoami命令。

为啥用whoami命令呢?因为这个命令不但windows和linux系统都支持(windows xp不默认支持,可安装),而且显示的内容不同,不但可以用来判断是否有远程命令执行漏洞,还可以用来判断操作系统(linux系统中显示当前执行操作的用户名,windows系统中显示当前登录的域名和用户名)。

还有一点需要注意,命令和连接符之间有没有空格都可以

windows 10

a | b

a为真,b执行

a为假,b执行

a || b

a为真,b不执行

a为假,b执行

a && b

a为真,b执行

a为假,b不执行

a & b

a为真,b执行

a为假,b执行

 

kali linux

a | b

a为真,b执行

a为假,b执行

a || b

a为真,b不执行

a为假,b执行

a && b

a为真,b执行

a为假,b不执行

a ; b

a为真,b执行

a为假,b执行

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值