Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:ping空格IP地址,如图:

RCE——远程命令/代码执行_网络故障


RCE英文全称:remote command/code execute
分为远程命令执行ping和远程代码执行evel。
漏洞出现的原因:没有在输入口做输入处理。
我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,这就是RCE漏洞。具体后端代码如下:

$result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理
  • 1

具体案例(远程命令执行ping):

下图说明开发者想让用户输入的只有IP地址:

RCE——远程命令/代码执行_web界面_02


但是如果没有做严格的处理,我们就可以拼接其他的语句上去,比如:
net start 查看开启了哪些服务:

RCE——远程命令/代码执行_网络故障_03


效果图

RCE——远程命令/代码执行_安全分析_04


从上可以看出,相当于直接操控服务器电脑的cmd命令行!高危漏洞!


具体案例(远程代码执行evel):
后端代码:

if(@!eval($_POST['txt']))
  • 1

可以看出没有做处理,和上面(远程命令执行ping)不同的是,这里是PHP代码,而上面(远程命令执行ping)执行的是命令行。

RCE——远程命令/代码执行_网络故障_05


执行后效果图

RCE——远程命令/代码执行_网络故障_06