remote command/code execute 分为远程命令执行ping和远程代码执行evel
远程命令执行
应用系统从设计上需要给用户提供指定的远程命令操作的接口,比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上,一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。当输入未进行校验限制时,可能造成远程命令执行漏洞
远程代码执行
后端获取数据不加以限制和检验,当用户输入数据被当做代码执行时,也就造成了远程代码执行漏洞。 不管是使用了代码执行的函数,还是使用了不安全的反序列化等等。因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。
在操作系统上执行系统命令/代码,接管服务器
代码及命令执行前做好检测和过滤,特别是用户能控制的点,并且尽量不要使用系统命令执行函数。
后端代码显示获取ipaddress,判断系统之后直接拼接执行,未做限制
漏洞利用
可利用拼接符并行操作系统
#ping 127.0.0.1&&net user
后端代码显示直接调用了eval函数,意味着输入的数据会被单做php代码执行
漏洞利用
#phpinfo();测试