RCE英文全称:remote command/code execute
分类:分为远程命令执行ping和远程代码执行evel
还需要注意的是它们是有本质的区别的。命令执行只是针对系统命令,而远程代码执行针对的是编程代码,两者互不能替换
漏洞出现的原因:没有在输入口做输入处理
我们常见的路由器、防火墙、入侵检测等设备的web管理界面上一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,这就是RCE漏洞
具体后端代码:
$result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理
这里还需要学习ping的一些知识:
Ping(Packet Internet Groper)是Windows、Linux和Unix系统下的一个命令。ping也是因特网包探索器,用于测试网路连接量的程序,其工作在TCP/IP网络体系结构中应用层的一个服务命令。ping可以检查网络连接是否能连接,是否顺畅,能帮助我们诊断网络故障
看一下dvwa靶场的命令注入
复习一下命令连接符: