命令注入解释
为什么可以执行命令注入呢?原因是因为后台代码并未对用户输入的参数ip的值进行过滤就直接与ping命令进行拼接并执行 ,因此我们可以使用常见的命令拼接字符对命令进行拼接,如使用“&”,“|”,“&&”,“||”等,linux系统下还可以使用“;”,“``”。
以下是常用的命令拼接符
命令拼接符:
|、||、&、&&的区别:
&:无论左边是false还是true,右边都执行
&&:具有短路效果,左边是false,右边不执行。
|:无论左边是false还是true,右边都会执行
||:具有短路效果,左边是true,右边不执行。
短路效果:逻辑运算符的短路效果逻辑运算符当能得到结果时,就不会再继续运算右边的代码,以节省空间以及一定的性能,称为短路效果。
payload: 127.0.0.1 && cd ../../../&& cat flag
payload2: 1 | cat /flag