【常用命令拼接符】
序号 | 拼接方式 | 示例 | 解释 |
1 | | | pwd|touch 1 | | 符:管道符“|”上一条命令的输出,作为下一条命令参数(command1|command2 ) 注意:当command1执行报错时,结果会打印command2的结果以及command1的错误信息 |
2 | & | pwd&tonch 1 | &符:&放在启动参数后面表示设置此命令在后台运行 在命令注入漏洞中&符解析成 command1 & command2(表示先执行command1后执行 command2) |
3 | ; | pwd;touch 1 | ;符:command1;command2(命令从左到右顺序执行) |
4 | || | pd||touch 1 | || 符:command1||command2(当左边为假时执行右边命令) |
5 | && | pwd&&touch 1 | &&符: command1&&command2(当左边为真时执行右边命令 |
6 | `` | pwd`touch 1` | ``也可以进行命令的执行 |
7 | $ | pwd$(touch 1) | 拥有较高的执行优先级 |
8 | 换行%0a | pwd touch 1 | 换行进行命令的执行 |
命令执行举例:
1、| 符
| 符:管道符“|”上一条命令的输出,作为下一条命令参数(command1|command2 )
注意:当command1执行报错时,结果会打印command2的结果以及command1的错误信息
前一个命令会执行,但是不会显示,当报错的时候会提示报错
第一个命令错误不会影响第二个命令执行
2、&符
&符:&放在启动参数后面表示设置此命令在后台运行
在命令注入漏洞中&符解析成 command1 & command2(表示先执行command1后执行 command2)
第一个命令错误不会影响第二个命令的执行
3、;符
;符:command1;command2(命令从左到右顺序执行),两个命令都会执行
前一个命令报错不会影响第二个命令执行
4、|| 符
|| 符:command1||command2(当左边为假时执行右边命令)
前一个命令正确时不会执行后一个命令
前一个命令错误时才会执行后一个命令
5、&&符
&&符: command1&&command2(当左边为真时执行右边命令
左边为假时不会执行右边命令
6、``
``也可以进行命令的执行
两个命令都可以执行
7、$符
拥有较高的执行优先级
两个命令都会执行
8、换行
【常见类型绕过方法】
1、在Web程序中有对空格过滤的情况
<,<>,%20(space),%09(tab),$IFS$9, I F S , {IFS},IFS,IFS
2、在Web程序中有对关键词cat命令过滤的情况,如
2.1 less或more或tail命令绕过