1、介绍
应用程序有时需要调用一些执行系统命令的函数,如在php中,使用system、exec、shell_exec、passthru、popen、proc_popen等函数可以执行系统命令。当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击。
2、windows支持的管道符
- | 直接执行后门的语句。例如ping 127.0.0.1|whoami
- || 如果前面执行的语句执行出错,则执行后面的语句,前面的语句为假。例如ping 2||whoami
- & 如果前面的语句为假则直接执行后面的语句,前面的语句可真可假,例如ping 127.0.0.1&whoami
- && 如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句只能为真。例如ping 127.0.0.1&&whoami
3、linux支持的管道符
- ; 执行完前面的语句再执行后面的。例如ping 127.0.0.1;whoami
- | 显示后面语句的执行结果。例如ping 127.0.0.1|whoami
- ||
- &
- &&
4、防护
- 尽量不用使用命令执行函数
- 严格检查,过滤敏感字符,以及黑白名单匹配