远程代码执行漏洞(Remote Code Execute,简称RCE)但也有另一个含义,即远程命令执行(remote command execute)无论是执行代码还是执行命令,都统称为RCE漏洞。它也可以被称为命令注入漏洞,因其与命令相关。远程代码执行漏洞指的是在程序中,为实现某些业务目的而预留的执行命令或代码的接口。这些接口被提供给外部用户使用,但最终被黑客所利用。
漏洞出现的地方
在常见的一些路由器、防火墙和入侵检测系统的外部管理界面上,系统会提供一个pin的操作界面。其原本用法是用户输入一个IP,然后查看pin的返回结果。此外,现在还有一些系统或公司使用了自动化的运维系统,为了方便直接在网页里执行一些服务器命令,它们也提供了相关的接口。
漏洞危害
1 获取服务器权限
2 获取敏感数据文件
3 写入恶意文件getshell
4 植入木马病毒勒索软件等
php相关函数


windows命令拼接符

Linux命令拼接符

如下代码可以过滤非法输入
// Get input
$target = $_REQUEST['ip'];
$target = stripslashes($target); //反引用一个引用字符串
//explode()函数以.为边界点分割字符串返回一个数组,每个元素都是string的一个子串
$octet = explode( ".", $target );
//检查数组元素是否都是数字
if((is_numeric($octet[0])) && (is_numeric($octet[1])) && (is_numeric($octet[2])) && (is_numeric($octet[1])) );
//拼接
$target = $octet[0] . '.' $octet[1] . '.' $octet[2] . '.' $octet[3];
漏洞防御
1 开源框架,升级到最新版本
2 尽量不要使用命令执行的函数
若发现系统中可能使用了此类函数,应从两个角度去发现:一是从业务功能角度,基于业务了解,对可能执行命令或函数的功能进行审计;二是基于已掌握的函数,进行白盒代码审计或使用相关工具进行检查。
3 如果必须要使用,需要做白名单处理
4 用正则表达式对用户输入内容进行处理
5 使用WAF
WAF自带的规则库较为全面,且可更新维护。若出现新的攻击方式,只需更新规则库,无需修改代码,较为方便。
1093

被折叠的 条评论
为什么被折叠?



