命令注⼊是⼀种通过存在漏洞的应用程序向主机操作系统执行任意命令的漏洞。Web开发所使用的编程语言中,大多数都能通过Shell执行OS(操作系统)命令。通过Shell执行OS命令时,或者开发中用到的某个方法其内部利用了Shell时,就有可能出现OS命令被任意执行的情况。通常情况下。当应用程序对用户提供的数据(表 单,cookie,http 头)不进行检测传递给系统 shell,输入验证不足造成os命令注入。
os命令注入中,攻击者提供的操作系统命令通常以易受攻击的应用程序特权执行。所以危害比较严重。
1.&&
命令之间用&&连接,逻辑与,左边命令返回真,右边命令执行。一个为假后面就不执行。
2.|(管道符号)
上一条命令的输出作为下一条命令的参数
3.||
||command 2 || command3
逻辑或
前面为假后面命令才会执行
4.&
表示将任务置于后台执行
5.;(分号)
多行语句可用换行区分代码块,单行语句一般用分号区分代码块。
6.`` 和$()
用来做命令替换?用来过去到变量的内容,如果反引号或者$()中的内容是一条命令,则输出的是命令执行的内容。详细参见https://blog.csdn.net/mrmengj/article/details/112237465
7.( )和{ }
用来执行多条命令
8.shell 输入输出重定向
command>file 输出重定向到文件 file:文件名
command<file 输入重定向到文件 file:文件名
9.正则表达式 及通用字符簇
bypass https://xz.aliyun.com/t/3918 还在学习