本文最后更新于521 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
一、命令执行(RCE):
应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
二、命令执行漏洞利用条件:
1、应用调用执行系统命令的函数
2、将用户输入作为系统命令的参数拼接到了命令行中
3、没有对用户输入进行过滤或过滤不严
三、漏洞分类:
1、代码层过滤不严
商业应用的一些核心代码封装在二进制文件中,在web应用中通过system函数来调用: system("/bin/program –arg $arg");
2、系统的漏洞造成命令注入
比如:bash破壳漏洞(CVE-2014-6271)
3、调用的第三方组件存在代码执行漏洞
如wordPress中用来处理图片的imageMagick组件
JAVA中的命令执行漏洞(struts2/ElasticsearchGroovy等)
ThinkPHP命令执行
四、漏洞危害:
1、继承Web服务程序的权限去执行系统命令或读写文件
2、反弹shell
3、控制整个网站甚至服务器
4、进一步内网渗透
等等
五、远程命令执行漏洞与远程代码执行漏洞
1、远程命令执行漏洞概念
远程命令执行漏洞,指用户通过浏览器提交执行操作命令,由于服务器端,没有针对执行函数做过滤,就执行了恶意命令
2、远程代码执行漏洞概念
代码执行漏洞也叫代码注入漏洞,指用户通过浏览器提交执行恶意脚本代码,执行恶意构造的脚本代码