远程代码执行
漏洞简介
远程代码/命令 执行又称为RCE,由于程序在调用一些函数的时候没有对用户的输入进行检测,所以造成了远程代码执行
但是本质就是利用了相对应的语言执行系统命令
rce 有两种解释
- remote code execute 远程代码执行
- remote command execute 远程命令执行
作用
RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
原理
根根原理就是利用了给用户提供了命令执行的方式,但是没有对内容做限制
漏洞挖掘
黑河挖掘
相对应的网站本身可以执行相对的命令 比如ip 等
白盒挖掘
反序列化漏洞 php java go .net
漏洞危害
执行PHP代码
获取服务器内容或相关信息
向服务器写WebShell
利用代码PHP代码功能,往服务器中写入shell脚本
控制服务器
利用shell脚本,上传大马,甚至控制服务器
Rce和Getshell
在最开始的时候发现对这个有点懵,现在统一的解释一下
RCE:
攻击者利用漏洞成功的在目标的系统上执行任意代码的能力。攻击者往往使用RCE获取目标系统的控制
Getshell:
简单明了的可以知道,就是攻击者得到了一个受攻击系统的shell
总结的说:
Rce是攻击的技术,getshell是攻击成功的结果。攻击者可以通过各种方式实现RCE,而获得getshell是RCE的一种可能结果之一。
漏洞发现
通过代码审计
借助代码审计工具,非常方便的审计出此类的漏洞
一直的CMS漏洞
已知CMS有很多每年都会爆出来很多此类的漏洞
页面传参的检查
针对页面有传入参数的地方,可以重点关注传入恶意代码尝试,概率相对较小
常用的代码执行函数
PHP: eval、assert、preg_replace()、+/e模式(PHP版本<5.5.0)
Javascript: eval
Vbscript:Execute、Eval
Python: exec
Java: Java中没有php中eval函数这种直接可以将字符串转化为代码执行的函数,但是有反射机制,并
且有各种基于反射机制的表达式引擎,如:OGNL、SpEL、MVEL等,这些都能造成代码执行漏洞。
1 |
|
漏洞修复
1.尽量不要使用危险函数
2.对数据进行黑白名单处理
3.对传入的特殊字符转义
4.谨慎使用preg-replace的e修饰符
剩下的参考