RCE之命令注入
-
什么是RCE
远程命令/代码执行漏洞,简称RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,RCE分为远程执行命令执行ping和远程代码执行eval -
什么是命令注入
命令注入就是能够通过控制外部参数可以达到执行系统命令的效果 -
命令注入产生的原因
服务器对一些函数参数未进行过滤或者过滤不严格,导致可以注入执行额外的命令
例如,&,&&,|,||连接符,调用的第三方组件存在代码执行漏洞,如php代码执行函数的eval(),php命令执行函数的system() -
危害
此漏洞可以导致攻击者在服务器上执行任意的命令,获取更高权限,甚至可以获取服务器的控制权 -
实例
通过靶场所示的php代码,可以知道,该靶场过滤了 \ / space cat flag ctfhub ; &,但是我们可以通过绕过过滤来进行命令注入 -
技巧
- 绕过分隔符: %0a换行符 %0d回车符 以及;(连续指令) & | || &&
- 绕过空格 : < <> ${IFS}
- 绕过黑名单单词:’ ‘’ \ *(补全符) 以及通过base64转码绕过
- cat的绕过:(可以使用与cat拥有相同功能的命令)tac less
- 防范
使用正则表达式(是用于描述一组字符串特征的模式,用来匹配特定的字符串)进行过滤,或直接对变量进行过滤,对敏感字符进行转义