RCE漏洞简介

RCE漏洞基本概念

命令执行漏洞是指攻击者可以随意执行系统命令,氛围远程代码执行和系统命令执行,黑客可以直接在web应用中执行系统命令,从而获取敏感信息或者拿下shell权限。

程序应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell exec、passthru、popen、proc _popen等,当用户能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击

由于开发人员编写源码时,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句,并提交服务端执行

命令注入攻击中,Web服务器没有过滤类似system、eval和exec等函数,是该漏洞攻击成功的主要原因。

利用条件:

  • 应该调用执行系统命令的函数

  • 将用户输入作为系统命令的参数拼接到了命令行中

  • 没有对用户输入进行过滤或过滤不严

漏洞产生的原因

一、代码层过滤不严

  • 商业应用的一些核心代码封装在二进制文件中,在web应用中通过system函数来调用: system(“/bin/program --arg $arg”);

二、系统的漏洞造成命令注入

  • bash破壳漏洞(CVE-2014-6271)

三、调用的第三方组件存在代码执行漏洞

  • 如wordPress中用来处理图片的imageMagick组件

  • JAVA中的命令执行漏洞(struts2/ElasticsearchGroovy等)

  • ThinkPHP命令执行

php命令执行

  • system函数

    • PHP: system - Manual

  • exec函数

    • PHP: exec - Manual

  • shell_exec函数

    • PHP: shell_exec - Manual

  • passthru函数

    • PHP: passthru - Manual

  • popen函数

    • PHP: popen - Manual

  • ``

Windown 命令连接符

一、&
  • 无论左边是false还是true,右边都执行,按顺序执行

二、&&
  • 具有短路效果,左边是false,右边不执行

三、|
  • 表示A命令语句的输出,作为B命令语句的输入执行。当A为false的时候将不会执

四、||
  • AIIB,表示A命令语句执行失败,然后才执行B命令语句。

Linux 命令连接符

一、&
  • 在后台运行

二、;
  • 分号(;)可以进行多条命令的无关联执行,每一条执行结果不会影响其他命令的执行

三、&&
  • 按照顺序执行,如果前面应该正确就会执行下一个,如果错误那么就不会执行下一个

四、||
  • 如果||左边的命令执行失败(返回1表示失败),才执行|右边的命令,否则不执行右边的命令,具有短路功能。

五、()
  • 如果想执行几个命令,则需要用命令分隔符分号隔开每个命令,并使用圆括号()把所有命令组合起来

rce 绕过

在执行命令的时候可能会过滤空格,或一些命令,这时候就需要绕过

一、空格过滤

1、${IFS}

  • cat${IFS}flag.txt

2、重定向符<>

  • cat<>flag.txt

3、%09(需要PHP环境)

  • cat%09flag.txt

二、黑名单绕过
  • 拼接

    • A=c;b=at;c=fla;d=g.txt;$a$b $c$d

  • base64编码

    • echo 'Y2F0IGZsYWcudHh0==' |base64 -d

  • 单引号、双引号

    • cat ' 't fla " " g.txt

  • 反斜线

    • cat\t fla \g.txt

  • $1,$2等和 $@

三、读文件绕过

当cat命令被拦截时,可以使用其它的一些命令

  • More

  • Less

  • Head

  • Tac

  • Tail

  • Nl

  • 0d

  • Vi

  • Vim

  • Sort

  • Uniq

  • File -f

四、通配符绕过
  • ?字符代表单个字符

  • *字符代表任意数量的字符

  • [...]匹配方括号之中的任意一个字符

  • #存在文件a.txt和 b.txt

  • $ ls [ab].txt

  • a.txt b.txt

  • $ Is *[ab].txt

  • ab.txt a.txt b.txt

五、内联执行绕过
  • 命令和$(命令)都是执行命令的方式

  • 反引号是命令替换,命令替换是指Shell可以先执行中的命令,将输出结果暂时保存在适当的地方输出。语法:command

漏洞防御

  • 尽量少使用执行命令函数或者禁用disable_functions(php.ini)

  • 在进入执行命令的函数之前,对参数进行过滤,对敏感字符进行转义

  • 参数值尽量使用引号包括,并在拼接前调用addslashe进行转义

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

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

相关文章

代码随想录算法跟练 | Day7 | 哈希表Part2

个人博客主页&#xff1a;http://myblog.nxx.nx.cn 代码GitHub地址&#xff1a;https://github.com/nx-xn2002/Data_Structure.git Day7 454. 四数相加 II 题目链接&#xff1a; https://leetcode.cn/problems/4sum-ii/ 题目描述&#xff1a; 给你四个整数数组 nums1、nums…

计算机必考课程之-现代管理学

1、将总体单元或元素按照其属性、特征分为若千个层次或类型&#xff0c;然后在各类型或层次中按随机原则抽取样本的抽样方法是 A简单随机抽样 B等距抽样 C分类抽样 D整群抽样 答案 正确答案 C 解析 分层随机抽样&#xff0c;也称分类抽样.它是将总体单位或元素按照其属…

【逻辑回归】Logistic Regression逻辑回归模型学习笔记

文章目录 序言1. 线性回归2. 逻辑回归2.1 引入逻辑回归的原因2.2 逻辑回归2.3 逻辑回归的应用 3. 逻辑函数3.1 sigmoid函数3.2 sigmoid函数的性质3.3 决策边界3.4 对数几率 4. 损失函数4.1 为什么说逻辑回归时概率类模型4.2 为什么要进行极大似然估计4.3 利用MLE如何推导出损失…

力扣16. 最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。 示例 1&#xff1a; 输入&#xff1a;nums [-1,2,1,-4], target 1 输出&#xff1a;2 解…

Linux下的配置工具menuconfig+配置文件(Kconfig/.config/defconfig)

我们都知道,嵌入式开发中,或者说C语言中,配置基本都是通过宏定义来决定的,在MCU开发中,代码量比较小,配置项也比较少,我们直接修改对应的宏定义即可。 但是,Linux开发中,操作系统、驱动部分还有应用部分加起来,代码量极大,配置项目也非常多,这时候,就需要对这些配…

HackTheBox-Machines--Cronos

文章目录 0x01 信息收集0x02 命令注入漏洞0x03 权限提升 Cronos 测试过程 0x01 信息收集 1.端口扫描 发现 SSH&#xff08;22&#xff09;、DNS&#xff08;53&#xff09;、HTTP&#xff08;80&#xff09;端口 nmap -sC -sV 10.129.227.2112.53端口开启&#xff0c;进行DNS…

【LeetCode刷题】前缀和解决问题:742.寻找数组的中心下标、238.除自身以外数组的乘积

【LeetCode刷题】Day 15 题目1&#xff1a;742.寻找数组的中心下标思路分析&#xff1a;思路1&#xff1a;前缀和思想 题目2&#xff1a;238.除自身以外数组的乘积思路分析思路1&#xff1a;前缀和思想 题目1&#xff1a;742.寻找数组的中心下标 思路分析&#xff1a; 其实题干…

创建pdb

1、从seed创建一个pdb CREATE PLUGGABLE DATABASE pdb1 ADMIN USER salesadm IDENTIFIED BY SALESADMSTORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)DEFAULT TABLESPACE users DATAFILE /u02/app/oracle/oradata/cuugnew/PDB1/users01.dbf SIZE 20M AUTOEXTEND ONFILE_NAME…

【软件开发规范篇】前言

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

Linux——多线程(三)

在上一篇博客中我们讲到了在加锁过程中&#xff0c;线程竞争锁是自由竞争的&#xff0c;竞争能力强的线程会导致其他线程抢不到锁&#xff0c;访问不了临界资源导致其他线程一直阻塞&#xff0c;造成其它线程的饥饿问题&#xff0c;想要解决此问题又涉及一个新概念线程同步 一…

18 EEPROM读写

EEPROM 简介 EEPROM (Electrically Erasable Progammable Read Only Memory&#xff0c;E2PROM)即电可擦除可编程只读存储器&#xff0c;是一种常用的非易失性存储器&#xff08;掉电数据不丢失&#xff09;&#xff0c;EEPROM 有多种类型的产品&#xff0c;此次实验使用的是A…

32位与64位程序下函数调用的异同——计科学习中缺失的内容

前言 今天&#xff0c;通过一个有趣的案例&#xff0c;从反编译的角度看一下C语言中函数参数是如何传递的。 创建main.c文件&#xff0c;将下面实验代码拷贝到main.c文件中。 # main.c #include <stdio.h>int test(int a, int b, int c, int d, int e, int f, int g, …

Docker最新超详细版教程通俗易懂

文章目录 一、Docker 概述1. Docker 为什么出现2. Docker 的历史3. Docker 能做什么 二、Docker 安装1. Docker 的基本组成2. 安装 Docker3. 阿里云镜像加速4. 回顾 hello-world 流程5. 底层原理 三、Docker 的常用命令1. 帮助命令2. 镜像命令dokcer imagesdocker searchdocker…

解锁数据宝藏:高效查找算法揭秘

代码下载链接&#xff1a;https://gitee.com/flying-wolf-loves-learning/data-structure.git 目录 一、查找的原理 1.1 查找概念 1.2 查找方法 1.3平均查找长度 1.4顺序表的查找 1.5 顺序表的查找算法及分析 1.6 折半查找算法及分析 1.7 分块查找算法及分析 1.8 总结…

pytorch学习笔记5

transform 本质上作用是将图片通过transform这个这个工具箱获取想要的结果 tensor就是一个包含神经网络需要的一些理论基础的参数 from torch.utils.tensorboard import SummaryWriter from torchvision import transforms from PIL import Image #tensor数据类型 #通过tra…

渗透测试之Web安全系列教程(一)

今天&#xff0c;我们来讲一下Web安全&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 目前&#xff0c;在渗透测试领域&#xff0c;主要分为了两个发展方向&#xff0c;分别为Web攻防领域和PWN&#xff08;二进制安全&#xff09;攻防领域。Web…

1985-2020 年阿拉斯加和育空地区按植物功能类型划分的模型表层覆盖率

ABoVE: Modeled Top Cover by Plant Functional Type over Alaska and Yukon, 1985-2020 1985-2020 年阿拉斯加和育空地区按植物功能类型划分的模型表层覆盖率 简介 文件修订日期&#xff1a;2022-05-31 数据集版本: 1.1 本数据集包含阿拉斯加和育空地区北极和北方地区按…

DPDK基础组件二(igb_uio、kni、rcu)

The Linux driver implementer’s API guide — The Linux Kernel documentation 一、igb_uid驱动 参考博客:https://zhuanlan.zhihu.com/p/543217445 UIO(Userspace I/O)是运行在用户空间的I/O技术 代码位置:dpdk----/kernel/linux/igb_uio目录 igb_uio 是 dpdk 内部实…

学习数据分析思维的共鸣

在这篇文章中&#xff0c;我将分享自己在成长过程中对数据分析思维的领悟&#xff0c;从《数据分析思维-产品经理的成长笔记》这本书引发的共鸣&#xff0c;到数据分析在不同岗位的广泛应用&#xff0c;再到如何将学习与快乐联系起来&#xff0c;以及沟通在数据分析中的重要性。…

cocos入门4:项目目录结构

Cocos Creator 项目结构教程 Cocos Creator 是一个功能强大的游戏开发工具&#xff0c;它为开发者提供了直观易用的界面和强大的功能来快速创建游戏。在使用 Cocos Creator 开发游戏时&#xff0c;合理地组织项目结构对于项目的可维护性和扩展性至关重要。以下是一个关于如何设…