远程代码执行漏洞概述
web服务图解
RCE代码
php中的shell_exec可以执行系统命令的函数
RCE
Remote Code Execute 远程代码执行
Remote Command Execute 远程命令执行
RCE危害
1、窃取服务器的敏感数据
1、对电脑的文件加密,实施勒索
3、运行恶意代码,比如挖矿程序
4、拒绝服务
5、作为跳板机攻击他人
RCE漏洞的价值
RCE是漏洞挖掘的最终目标,是价值最高的
RCE漏洞发生的前提
1、系统或者软件代码中使用了执行命令的函数
2、执行的命令是可以通过参数控制的
3、有个可以在外网访问的入口
AI回答
-
漏洞存在:目标系统、应用程序或服务中存在可被利用的漏洞。这些漏洞可能是由于编程错误、配置错误、设计缺陷或未及时修补的安全补丁造成的。
-
输入验证不足:攻击者能够向系统发送不受信任或未经充分验证的数据。这可能包括通过Web表单、API调用、文件上传或网络协议(如HTTP、FTP、SMTP等)传输的数据。
-
代码执行机制:系统必须提供某种机制来执行接收到的数据。这可以是通过解释或执行脚本语言(如JavaScript、PHP、Python等)的服务器端代码,或者通过解析和执行嵌入在文件或数据流中的代码(如宏、二进制代码等)。
-
权限提升:在某些情况下,即使攻击者能够执行代码,也可能没有足够的权限来执行有害操作。然而,如果攻击者能够利用其他漏洞或技术(如本地权限提升漏洞、内核漏洞等)来提升其权限,那么RCE漏洞的影响将更加严重。
-
网络可达性:攻击者必须能够通过网络访问到目标系统。这可能意味着目标系统必须暴露在公网上,或者攻击者能够通过网络渗透或其他方式访问到内部网络。
-
缺乏防御措施:如果目标系统缺乏有效的防御措施(如防火墙、入侵检测系统、安全审计等),那么攻击者将更容易地利用RCE漏洞。
远程代码执行漏洞案列
常见RCE漏洞成因
RCE漏洞是结果
分类 | 案列 |
不安全的文件上传 | 上传web木马 |
反序列化 | Fastjson |
OGNL/SPEL表达式注入 | Struts、spring、Cloud Gateway |
JNDI注入 | Log4j |
模板注入 | Uber Angular |
BOF(Buffer over缓冲区溢出) | MacOS:CVE-2018-4259、Python:CVE-2021-3177 |
典型案列
远程代码执行漏洞的挖掘
安全社区
多看别人的挖掘思路和技巧
看雪、卡饭、先知、微步、吾爱、tools、freebuf
分析方法
1、黑盒 2、白盒、逆向
参数名
exec=?、command=?、execute=?、ping=?、include=?、exclude=?、jump=?、code=?、reg=?、do=?、func=?、arg=?、option=?、load=?、process=?、step=?、read=?、function=?、req=?、feature=?、exe=?、module=?、payload=?、run=?、print=?
漏扫软件
本质:内置了参数名的列表,内置payload7*7 whoamin
xray goby
白盒或者逆向
相关函数
PHP
system()、exec()、shell_exec() 、popen()、proc_popen()、passthru()、eval()…
JAVA
Runtime.getRuntime().exec()……
Python
os.systrm()、os.popen()、subprocess.call()、os.spawn()……
代码审计匹配关键词
grep = find 这两个作用一样或者使用 Everything
远程代码执行漏洞的防御
方法手段
1、拔网线 2、过滤 3、白名单 4、WAF 5、关闭高危函数 6、升级版本 7、打补丁
防御思路
1、从入口(http流量)防御(自研产品防御)
2、产品升级(开源、采购或者使用第三方组件)
3、白名单(命令、IP)
4、安全产品
5、编码、配置角度
常见绕过思路
等价函数
大小写绕过
双写绕过
编码绕过
特殊字符绕过
总结rce(远程代码执行各种sao姿势)绕过bypass_远程命令执行绕过-CSDN博客