当前位置: 首页 > news >正文

RCE(远程命令执行)漏洞详解

漏洞描述

RCE(remote command/code execute,远程命令执行)漏洞 远程代码执行 (RCE) 攻击是指攻击者可以在一个组织的计算机或网络上运行恶意代码。执行攻击者控制的代码的能力可用于各种目的,包括部署额外的恶意软件或窃取敏感数据。

漏洞原理

远程代码执行攻击通常通过网络应用程序和网络基础结构的漏洞发生。 远程代码执行漏洞是软件中的缺陷,允许攻击者在目标系统上运行恶意代码。RCE 可以利用几种类型的漏洞,包括以下例子:

  • 注入漏洞:注入漏洞 — 如 SQL 注入或命令注入 — 是通过不良的输入消毒来实现的。如果用户提供一个精心设计的恶意输入,则其提供的一些数据将被解释为要运行的命令。这使得攻击者可以强迫有漏洞的系统执行攻击者提供的代码。

  • 不安全的反序列化:序列化通过将数据集打包成单一的由接收方系统解包的位串,简化了数据集的传输。然而,如果序列化数据的结构没有得到很好的定义,攻击者可能可以制定一个解包时会被误解的输入。根据数据的存储和处理方式,这种误读可能会使攻击者能够实现代码执行。

  • 越界写入:缓冲区是一块被分配用来存储数据的固定大小的内存。不安全的数据读取或写入可能允许攻击者将数据放在会被解释为代码或应用程序的重要控制流信息的地方。

  • 文件管理:有些应用程序允许用户向服务器上传文件。这种访问可能允许攻击者上传一个包含恶意代码的文件,并欺骗应用程序执行该代码。

恶意软件是攻击者提供的被设计为在目标系统上执行的代码。RCE 漏洞会允许攻击者以不同方式部署恶意软件。 因此,RCE 漏洞可以用来实现许多与传统恶意软件相同的目标。RCE 可用于在有漏洞的系统上部署恶意软件、进行拒绝服务 (DoS) 攻击,或访问存储在系统中的敏感信息。

漏洞场景

RCE 漏洞可能出现在各种类型的应用程序中,包括 Web 应用程序、网络服务、操作系统等。常见的场景包括使用远程代码执行漏洞的网络攻击、恶意软件的传播、未经授权的访问等

风险等级

RCE 漏洞通常被视为极高风险的漏洞,因为攻击者可以利用它远程执行任意代码,并可能导致目标系统的完全控制。

漏洞危害

RCE 漏洞的危害非常严重,攻击者可以利用它执行恶意代码,包括但不限于窃取敏感信息、篡改数据、拒绝服务等,甚至完全控制受影响系统。 如攻击者可以通过RCE继承web用户的权限,执行php代码,如果web的权限比较高的话,就可以读写目标服务器任意文件的内容,甚至控制整个网站。

php中与代码执行漏洞相关的危险函数:

   eval()   将字符串当作php代码执行assert()   将字符串当作php代码执行preg_replace()   将字符串正则匹配后替换call_user_func()   回调函数array_map()    回调函数

漏洞验证

验证 RCE 漏洞通常涉及尝试向目标系统发送包含恶意代码的请求,并观察是否成功执行了该代码

漏洞利用

RCE 漏洞可以用于通过以下方式进一步进行普通攻击:

  • 远程访问:攻击者经常利用 RCE 漏洞在企业网络上获得一个最初的立足点,然后再扩展。例如,一个 RCE 漏洞可以让攻击者窃取登录凭证,从而允许他们通过 VPN 进行网络访问。

  • 恶意软件部署:虽然 RCE 漏洞运行代码执行,但这种代码的范围可能是有限的。为了避开这一限制,攻击者可能利用 RCE 下载并执行其他更具破坏性的恶意软件。例如,RCE 可以用来在一个有漏洞的系统上下载和执行勒索软件。

  • 数据盗窃:RCE 漏洞可能允许攻击者在有漏洞的应用程序中运行命令。这使攻击者能够访问文件系统、数据库和存储的其他敏感的公司和客户数据。

  • 数据破坏:RCE 漏洞可能允许攻击者在数据库中运行 DROP 命令,或在系统终端中执行代码。这种访问提供了与合法用户相同的删除文件的能力

  • DoS 攻击:越界写入漏洞允许攻击者覆盖关键代码,使应用程序崩溃。其他 RCE 漏洞可能允许终止进程或删除重要数据。

漏洞防御

防御 RCE 漏洞的方法包括:

  • 输入验证和过滤

  • 沙箱环境隔离

  • 最小权限原则

  • 及时更新和漏洞修复

  • 安全编码实践

远程代码执行攻击是因为企业网络应用程序中有漏洞。公司可以通过以下方法来减少发生 RCE 攻击的几率:

  • 漏洞扫描:静态代码分析(以识别众所周知的漏洞模式)和动态分析(如模糊分析)的结合,可以帮助开发人员在 RCE 漏洞被利用之前识别和纠正这些漏洞。

  • 更新和打补丁:可能在一个应用程序或其依赖的第三方库中发现 RCE 漏洞。及时应用更新和补丁可以缩短有漏洞的代码被利用的窗口时间。

  • 输入验证:多数 RCE 漏洞涉及不良的输入验证,即应用程序对用户提供的数据做出假设。强有力的输入验证可以消除大多数 RCE 漏洞的威胁。

  • 网络监控:尝试性的 RCE 攻击可以被网络应用程序和 API 保护 (WAAP) 解决方案检测并阻止。在网络应用程序前部署网络安全解决方案可以减少未修补漏洞的潜在风险。

典型案例

典型的 RCE 漏洞案例包括:

Apache Struts2 远程执行代码漏洞(CVE-2017-5638)

于2017年3月被公开披露。该漏洞允许攻击者通过构造恶意的 HTTP 请求,利用 Struts2 框架对表达式语言(OGNL,Object-Graph Navigation Language)的解析不当,远程执行任意代码

EternalBlue SMB 漏洞(CVE-2017-0144)

于2017年3月由美国国家安全局(NSA)的 Equation Group 组织被泄露。该漏洞存在于 Windows 的 Server Message Block (SMB)协议的实现中,攻击者可以利用该漏洞在网络上远程执行任意代码 EternalBlue 漏洞曾被广泛利用于大规模网络攻击,最著名的案例包括 WannaCry 勒索软件攻击和 NotPetya 攻击。这两次攻击导致了全球范围内数百万台计算机被感染,造成了巨大的经济损失和社会影响。

Heartbleed 漏洞(CVE-2014-0160)

于2014年4月被公开披露。这个漏洞的存在使得攻击者可以利用 OpenSSL 实现的 TLS/SSL 协议中的心跳扩展(heartbeat extension)功能,从服务器内存中读取敏感信息,包括私钥、会话密钥和其他用户数据. 漏洞的原理是由于 OpenSSL 实现的心跳扩展功能中存在缓冲区溢出漏洞,攻击者可以发送恶意的心跳请求(heartbeat request),并在请求中伪造心跳数据的长度字段,导致服务器未经授权地泄露内存中的敏感信息 Heartbleed 漏洞的影响非常广泛,因为 OpenSSL 是用于加密互联网通信的一种广泛使用的开源加密库。受影响的系统包括 Web 服务器(如 Apache 和 Nginx)、电子邮件服务器、虚拟私有网络(VPN)设备等。此外,许多大型互联网服务提供商和网站也受到了这个漏洞的影响

Drupal 远程执行代码漏洞(CVE-2018-7600)

Drupal 远程执行代码漏洞(CVE-2018-7600)是 Drupal 内核中的一个严重漏洞,于2018年3月被公开披露。该漏洞影响了 Drupal 7.x 和 8.x 版本,允许未经身份验证的攻击者利用漏洞在受影响的 Drupal 网站上执行任意代码,并获取网站管理员权限。

Shellshock 漏洞(CVE-2014-6271、CVE-2014-7169)

于2014年9月被公开披露。该漏洞允许攻击者利用特定的环境变量注入方式,远程执行任意代码,从而获取系统的完全控制。 Shellshock 漏洞的原理是由于 Bash shell 在解析环境变量时存在缓冲区溢出漏洞,攻击者可以利用恶意构造的环境变量,在受影响的系统上执行任意代码。具体来说,攻击者可以通过在环境变量中注入恶意的 shell 命令,并通过传递这些变量给 Bash shell 的方式触发漏洞。 由于 Bash 是许多 Unix 和 Linux 系统的默认 shell,因此 Shellshock 漏洞影响了大量的服务器、工作站和网络设备。

Joomla 远程执行代码漏洞(CVE-2015-8562)

于2015年12月被公开披露。该漏洞影响了 Joomla 1.5.x、2.x 和 3.x 版本,允许未经授权的攻击者利用漏洞在受影响的 Joomla 网站上执行任意代码,并获取网站管理员权限。 由于 Joomla 是一个广泛使用的内容管理系统(CMS),受影响的 Joomla 网站数量庞大

WordPress 远程执行代码漏洞(CVE-2019-8942)

于2019年2月被公开披露。该漏洞影响了 WordPress 4.9.9 版本及之前的所有版本,允许未经授权的攻击者利用漏洞在受影响的 WordPress 网站上执行任意代码,并获取网站管理员权限 于2019年2月被公开披露。该漏洞影响了 WordPress 4.9.9 版本及之前的所有版本,允许未经授权的攻击者利用漏洞在受影响的 WordPress 网站上执行任意代码,并获取网站管理员权限

PHPMailer 远程执行代码漏洞(CVE-2016-10033)

于2016年12月被公开披露。PHPMailer 是一个常用的 PHP 库,用于发送电子邮件,受影响的版本包括 PHPMailer 5.2.18 之前的版本。 受影响的 PHPMailer 版本中的漏洞是由于对邮件地址和主题字段的不充分验证,导致了代码注入漏洞的存在。攻击者可以利用此漏洞在邮件发送过程中执行任意 PHP 代码

相关文章:

RCE(远程命令执行)漏洞详解

漏洞描述 RCE(remote command/code execute,远程命令执行)漏洞 远程代码执行 (RCE) 攻击是指攻击者可以在一个组织的计算机或网络上运行恶意代码。执行攻击者控制的代码的能力可用于各种目的,包括部署额外的恶意软件或窃取敏感数据。 漏洞原理 远程代…...

K8S - Deployment 的版本回滚

当前状态 先看deployment rootk8s-master:~# kubectl get deploy -o wide --show-labels NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES …...

53 v-bind 和 v-model 的实现和区别

前言 这个主要的来源是 偶尔的情况下 出现的问题 就比如是 el-select 中选择组件之后, 视图不回显, 然后 model 不更新等等 这个 其实就是 vue 中 视图 -> 模型 的数据同步, 我们通常意义上的处理一般是通过 模型 -> 数据 的数据同步, 比如 我们代码里面更新了 model.…...

VMware-16.0配置虚拟机网络模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、为什么要配置网络?二、配置步骤1.检查VMware服务2.进入配置页面3.添加网络模式1.Bridge2.NAT3.Host-only 4.DHCP租约5.静态IP 三、使用总结 前言…...

element-ui badge 组件源码分享

今日简单分享 badge 组件的源码实现,主要从以下两个方面: 1、badge 组件页面结构 2、badge 组件属性 一、badge 组件页面结构 二、badge 组件属性 补充几个标签的用途: sub:下标、sup:上标、var 变量 代码如下&am…...

MySQL中日期有关函数

本次记录了获取日期时间的多种方式,还有日期和字符串之间的转换,以及加减日期的操作。 获取时间 # 1.获取当前时间(年月日时分秒格式) select now();# 2.获取当前时间(年月日格式) select curdate();# 3.获取当前时间(时分秒格式) select curtime();# 4.…...

jdbc工具类

jdbc 工具类,具体见下面代码,直接可以用。 /*** version 1.0* descpription: jdbc工具类* date 2024/4/6*/ public class JDBCUtils {private static final String URL "jdbc:mysql://127.0.0.1:3306/mybatis";private static final String …...

Svelte Web 框架介绍

Svelte 是一个用于构建网络应用程序的现代框架,它与其他用户界面框架(如React和Vue)有着本质的不同。Svelte 的核心理念是在构建应用程序时,将大部分工作转移到编译步骤中,而不是在用户的浏览器中运行时处理。这种方法…...

IP地址获取不到的原因是什么?

在数字化时代的今天,互联网已成为我们日常生活和工作中不可或缺的一部分。而IP地址,作为互联网通信的基础,其重要性不言而喻。然而,有时我们可能会遇到IP地址获取不到的问题,这会给我们的网络使用带来诸多不便。那么&a…...

Android APP加固利器:深入了解混淆算法与混淆配置

Android APP 加固是优化 APK 安全性的一种方法,常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码 使用 ipaguard工具可以对代码进行混淆,使得反编译出来的代码很难阅读和理解&#xff…...

蓝桥杯真题Day47 倒计时6天:6道真题+回溯递归问题

[蓝桥杯 2019 省 A] 糖果 题目描述 糖果店的老板一共有M种口味的糖果出售。为了方便描述,我们将M 种口味编号 1∼ M。小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是K 颗一包整包出售。 幸好糖果包装上注明了其中 K 颗糖果的口味…...

通过UDP实现参数配置

来讲讲UDP的一种常见应用 我们知道UDP是一种无连接的网络传输协议,在发送数据时指定目标IP及端口就可以将数据发送出去,因此特别适合用作网络设备发现。 我们可以自定义一个通信端口,假设为55555。我们再制定一个协议用于查询目标设备&#x…...

解析Apache Kafka:在大数据体系中的基本概念和核心组件

关联阅读博客文章:探讨在大数据体系中API的通信机制与工作原理 关联阅读博客文章:深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章:深度剖析:计算机集群在大数据体系中的关键角色和技术要点 关联阅读博客文章&a…...

独角数卡对接码支付收款教程

1、到码支付后台找到支付配置。2、将上面的复制依次填入,具体看下图,随后点立即添加 商户ID商户PID 商户KEY异步不能为空 商户密钥商户密钥...

vuepress-theme-hope 添加谷歌统计代码

最近做了个网站,从 cloudflare 来看访问量,过去 30 天访问量竟然有 1.32k 给我整懵逼了,我寻思不应该呀,毕竟这个网站内容还在慢慢补充中,也没告诉别人,怎么就这么多访问?搜索了下, cloudflare 还会把爬虫的请求也就算进来,所以数据相对来说就不是很准确 想到了把 Google An…...

LabVIEW太赫兹波扫描成像系统

LabVIEW太赫兹波扫描成像系统 随着科技的不断发展,太赫兹波成像技术因其非电离性、高穿透性和高分辨率等特点,在生物医学、材料质量无损检测以及公共安全等领域得到了广泛的应用。然而,在实际操作中,封闭性较高的信号采集软件限制…...

什么是stable diffusion?

🌟 Stable Diffusion:一种深度学习文本到图像生成模型 🌟 Stable Diffusion是2022年发布的深度学习文本到图像生成模型,主要用于根据文本的描述产生详细图像。它还可以应用于其他任务,如内补绘制、外补绘制&#xff0…...

KeyguardClockSwitch的父类

KeyguardClockSwitch 定义在KeyguardStatusView中, mClockView findViewById(R.id.keyguard_clock_container);KeyguardClockSwitch的父类为: Class Name: LinearLayout Class Name: KeyguardStatusView Class Name: NotificationPanelView Class Name: Notificat…...

Gradle系列(二):Groovy基础

Gradle系列(二):Groovy基础 本篇文章继续讲下Groovy一些基础的语法。 1:Map map与List的用法很像,只不过值是一个K:V的键值对。 下面是是Groovy中Map的定义: task testMap { def map [‘width’:1280,‘height’:1960] prin…...

PW1503限流芯片:可达3A限流,保障USB电源管理安全高效

在电源管理领域,开关的性能直接关系到设备的稳定性和安全性。今天,我们将详细解析一款备受关注的超低RDS(ON)开关——PW1503。它不仅具有可编程的电流限制功能,还集成了多项保护机制,为各类电子设备提供了高…...

深挖苹果Find My技术,伦茨科技ST17H6x芯片赋予产品功能

苹果发布AirTag发布以来,大家都更加注重物品的防丢,苹果的 Find My 就可以查找 iPhone、Mac、AirPods、Apple Watch,如今的Find My已经不单单可以查找苹果的设备,随着第三方设备的加入,将丰富Find My Network的版图。产…...

Web3 革命:揭示区块链技术的全新应用

随着数字化时代的不断发展,区块链技术作为一项颠覆性的创新正在改变着我们的世界。而在这一技术的进步中,Web3正逐渐崭露头角,为区块链技术的应用带来了全新的可能性。本文将探讨Web3革命所揭示的区块链技术全新应用,并展望其未来…...

[实战经验]Mybatis的mapper.xml参数#{para}与#{para, jdbcType=BIGINT}有什么区别?

在MyBatis框架中,传入参数使用#{para}和#{para, jdbcTypeBIGINT}的有什么区别呢? #{para}:这种写法表示使用MyBatis自动推断参数类型,并根据参数的Java类型自动匹配数据库对应的类型。例如,如果参数para的Java类型是Lo…...

高并发下的linux优化

针对高并发服务,对 Linux 内核和网络进行优化可以提高系统的性能和稳定性。本文将深入探讨如何对 Linux 内核和网络进行优化,包括调整内核参数、调整网络性能参数、使用 TCP/IP 协议栈加速技术、下面将介绍一些可用于优化Linux内核和网络的技术&#xff…...

不同设备使用同一个Git账号

想要在公司和家里的电脑上用同一个git账号来pull, push代码 1. 查看原设备的用户名和邮箱 第1种方法, 依次输入 git config user.name git config user.email第2种方法, 输入 cat ~/.gitconfig2. 配置新设备的用户名和邮箱 用户名和邮箱与原设备保持…...

蓝桥杯算法题:区间移位

题目描述 数轴上有n个闭区间&#xff1a;D1,...,Dn。 其中区间Di用一对整数[ai, bi]来描述&#xff0c;满足ai < bi。 已知这些区间的长度之和至少有10000。 所以&#xff0c;通过适当的移动这些区间&#xff0c;你总可以使得他们的“并”覆盖[0, 10000]——也就是说[0, 100…...

提取word文档里面的图片

大家好&#xff0c;我是阿赵。   阿赵我写博客的时候的习惯是&#xff0c;先用word文档写好&#xff0c;然后再把word文档里面的图片另存&#xff0c;最后再在博客里面复制正文和上传图片。   而我写的文章一般配图都比较多&#xff0c;所以经常要做的一个功能就是另存图片…...

MybatisPlus总结

一、MyBatis回顾 &#xff08;1&#xff09;什么是MyBatis&#xff1a;MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映…...

使用 mitmproxy 抓包 grpc

昨天在本地执行 grpc 的 quick start&#xff08;python版本的&#xff09;&#xff0c;我了解 grpc 内部使用的是 HTTP2&#xff0c;所以我就想着抓包来试试&#xff0c;下面就来记录一下这个过程中的探索。 注意&#xff1a;我的电脑上面安装了 Fiddler Classic&#xff0c;…...

【解决Jetson Nano 内存不足问题】纯命令行将 Conda 环境迁移到 SD 卡

前言 Jetson Nano 板载只有 16GB 的存储空间&#xff0c;在安装完 Ubuntu 和 Conda 环境后&#xff0c;剩余空间就捉襟见肘了&#xff0c;无法满足安装 PyTorch 等大型包的需求。此时如果你有一张SD卡&#xff0c;那么可以考虑将 Conda 环境迁移到 SD 卡上。 但网上的教程基本…...

网站做系统叫什么软件/安卓优化大师

本文目录前提条件开启慢查询运行sqlpt-query-digest语法使用pt-query-digest分析慢查询日志相关文章联系方式前提条件mysql版本5.7.21redhat 6.8开启慢查询启用慢查询mysql> set global slow_query_logon;Query OK, 0 rows affected (0.01 sec)启用未使用索引慢查询mysql>…...

如何给网站做2维码/星沙网站优化seo

Unity 小科普 老规矩&#xff0c;先介绍一下 Unity 的科普小知识&#xff1a; Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者&#xff0c;借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…...

手机网站怎么建设/seo推广专员招聘

如下例程ReflectTester类进一步演示了Reflection API的基本使用方法。 ReflectTester类有一个copy(Object object)方法&#xff0c;这个方法能够创建一个和参数object同样类型的对象&#xff0c;然后把object对象中的所有属性拷贝到新建的对象中&#xff0c;并将它返回。 这个例…...

张家港营销型网站建设/灰色产业推广引流渠道

这篇文章开头关于PKI体系的例子很通俗易懂&#xff0c;没接触过的也能看明白 PKI体系介绍 这篇介绍比较专业一点&#xff0c;介绍了证书链、认证流程等&#xff0c;结合上一篇来看&#xff0c;能知道得不少了 数字证书的基本原理 数字证书格式介绍 https://blog.freessl.c…...

网站平台建设调研报告/近期国际热点大事件

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼clear all;close all;clc;Iimread(img_368.jpg);Irgb2gray(I); %灰度变换figure(1); imshow(I);JI;[m,n]size(J);if isa(J,double)~1Jdouble(J);endM5; %gabor滤波器有5个尺度X16; %gabor滤波器窗口大小Y16;gbgetGaborKernels(M,X,…...

南京疫情最新通报/seo每日工作内容

最近在开发过程中用到了webView加载HTML字符串的方式以下简单介绍下UIWebView加载HTML的三种常用的方式。而我主要应用的是第三种方法。UIWebView加载HTML的格式及方法&#xff1a;1)加载网页&#xff1a;- (void)loadWebPage {NSURL *url [NSURL urlWithString:"https:/…...