RCE漏洞产生原理
开发项目中在编写代码时没有做严格的安全控制,导致攻击者通过接口或相关参数提交有危害的命令,从而让后台进行执行,从而控制整个后台服务器
RCE漏洞分类
代码执行
代码执行主要还是看开发语音...,比如 PHP 、Java、Python这些开发语言用到的代码执行函数也不一样,能执行的效果也不太一样的
网上收集的一些可能存在漏洞的函数:
PHP的执行系统命令: assert,system,passthru...,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号)
PHP的代码执行与加密: eval, assert, call_user_func,base64..._decode, gzinflate, gzuncompress, gzdecode, str_rot13
PHP的文件包含与生成: require, require_once, include, include_once...拼接命令时:不管第一条命令是否执行成功都去执行第二条命令
用 & 拼接命令时:第一条命令失败,会执行第二条命令
用 && 拼接命令时:第一条命令执行失败,则不会执行第二条命令
RCE防御
对可控参数进行过滤和固定参数