命令执行漏洞
命令执行漏洞原理: 应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。 命令执行漏洞利用条件: 应用调用执行系统命令的函数 将用户输入作为系统命令的参数拼接到了命令行中 没有对用户输入进行过滤或过滤不严 漏洞分类: 代码层过滤不严 商业应用的一些核心代码封装在二进制文件中,在web应用中通过system函数来调用:system("/bin/program --arg $arg"); 系统的漏洞造成命令注入 bash破壳漏洞(CVE-2014-6271) 调用的第三方组件存在代码执行漏洞 如wordPress中用来处理图片的imageMagick组件 JAVA中的命令执行漏洞(struts2/ElasticsearchGroovy等) ThinkPHP命令执行 漏洞危害: 继承Web服务程序的权限去执行系统命令或读写文件 反弹shell 控制整个网站甚至服务器 进一步内网渗透 等等 命令拼接符 |、||、&、&&的区别: &:无论左边是false还是true,右边都执行 &&:具有短路效果,左边是false,右边不执行。 |:无论左边是false还是true,右边都会执行 |