RCE
远程命令/代码执行(remote command/code execute)
漏洞形成原理
在 Web 应用中有时候程序员为了考虑灵活性、简洁性,会在代码中调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数(eval函数)时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。
一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。
利用
该漏洞可以被攻击者利用进而执行一些恶意命令,可以造成用户取得服务器权限(getshell)等等危害。(ps:代码执行和命令执行相似但不同,注入内容和系统/语言环境不同。)
- 查看系统文件
- 显示绝对路径
- 写入/删除文件
命令执行与代码执行区别
两者主要就是语言和系统地区别,执行不是注入,web层面语言目前也就php/python/java三者居多,我们利用一些函数,比如eval函数是执行字符串当php代码执行,我们一句话中若写入phpinfo()函数,就算代码执行,若写入system()函数就算命令执行。