一、远程命令(command)执行
原理
系统对用户输入的参数过滤不严,导致用户可以输入&、|、||等命令连接符,拼接并执行命令
利用条件
1、应用调用执行系统命令的函数
2、将用户输入作为系统命令的参数拼接到了命令行中
3、没有对用户输入进行过滤或过滤不严
危害
1、继承Web服务程序的权限去执行系统命令
2、反弹shell
3、控制整个网站甚至控制服务器
4、进一步内网渗透
拼接符
示例 | 含义 |
---|---|
cmd1 | cmd2 | 只执行cmd2 |
cmd1 || cmd2 | 只有当cmd1执行失败后,cmd2才被执行 |
cmd1 & cmd2 | 先执行cmd1,不管是否成功,都会执行cmd2 |
cmd1 && cmd2 | 先执行cmd1,cmd1执行成功后才执行cmd2,否则不执行cmd2 |
Linux系统中支持用分号 (;)执行多个命令,cmd1;cmd2 按顺序依次执行,先执行cmd1再执行cmd2
二、示例
利用代码
<?php