章节1:远程代码执行渗透与防御

news2024/11/17 9:58:25

章节1:远程代码执行渗透与防御

01 什么是远程代码执行?

远程代码执行(RCE漏洞)

远程代码执行:Remote Code Execute

远程命令执行(命令注入漏洞):Remote Command Execute

定义: 在我们的程序里,由于要达到实现某些业务的目的,我们预留了一些去执行命令或代码的接口,我们还把接口提供给外部用户去使用,最后这个接口又被黑客所利用,造成了一些后果。

rce远程代码执行漏洞是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口

比如我们常见的路由器,防火墙,入侵检测设备的web管理界面,一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该ip地址进行一次ping测试,并返回测试结果。而,如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者从该接口提交“意想不到”的命令,从而让后台执行,从而控制整个后台服务器

漏洞危害

  • 获取服务器权限
  • 获取敏感数据文件
  • 写入恶意文件getshell
  • 植入木马病毒勒索软件等

https://mp.weixin.qq.com/s/d8citoIBpMQKsVf931PLFw

实际漏洞

  • CVE-2021-3177 Python RCE漏洞

  • CVE-2021-21972 VMWare RCE漏洞

  • CVE-2021-25646 Apache Druid RCE漏洞

  • CNVD-2020-46552 深信服EDR

  • CNVD-2021-30101 网康下一代防火墙

  • http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=RCE

02 PHP RCE涉及函数

(没必要记忆,有大概印象即可)

命令command注入

函数作用
system()执行外部程序,并且显示输出
exec()/shell_exec()通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回
pcntl_exec()在当前进程空间执行指定程序
passthru()执行外部程序并且显示原始输出
popen()打开进程文件指针
proc_open()执行一个命令,并且打开用来输入/输出的文件指针

代码code注入

函数作用
eval()把字符串 code 作为PHP代码执行
assert()检查一个断言是否为false
preg_replace()执行一个正则表达式的搜索和替换
create_function()创建一个匿名函数并且返回函数名称
call_user_func()/call_user_func_array()把第一个参数作为回调函数调用
usort()/uasort()使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

03 靶场案例

Windows命令拼接符号

符号含义示例
&&左边的命令执行成功,右边的才执行ping 127.0.0.1 && echo ‘hello’
&简单的拼接ping 1111 & echo ‘hello’
|上一条命令的输出,作为下一条命令参数netstat -ano | findstr 3306
||左边的命令执行失败,右边的才执行ping baidu.com || ping baidu.net

Linux命令拼接符号

符号含义示例
;没有任何逻辑关系的连接符
&&左边的命令执行成功,右边的才执行cp 1.txt 2.txt && cat 2.txt
|上一条命令的输出,作为下一条命令参数netstat -an | grep 3306
||左边的命令执行失败,右边的才执行cat 3.txt ||cat 2.txt
&任务后台执行,与nohup命令功能差不多java -jar test.jar > log.txt &

pikachu

ping payload

127.0.0.1 & ipconfig

127.0.0.1 & whoami

eval payload phpinfo();

POST请求,参数为txt,可以用中国蚁剑连接

在这里插入图片描述

DVWA

在这里插入图片描述

payload

127.0.0.1 & ipconfig

127.0.0.1 & net user hacker /add

05 RCE防御

防御

  1. 开源框架,升级到最新版本
  2. 尽量不要使用命令执行的函数
  3. 如果必须使用,需要做白名单处理
  4. 用正则表达式对用户输入的内容进行处理
  5. 使用WAF

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

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

相关文章

高速PCB Layout设计要用哪些工具?

随着时代高速发展,高速PCB项目逐渐成为主流项目之一,越来越多的电子工程师需要掌握高速PCB Layout设计能力,同时电子工程师在进行高速PCB Layout时需要用到多种工具,下面来看看有哪些工具和软件? 1、设计软件 ①Altiu…

Redis的常用数据结构之列表类型

列表类型的数据特点 用于存储多个有序的字符串单个列表最多可以存储2的32次方-1个元素(4294967295)。列表的元素是可以重复的可以分别对列表的两端做插入(push)和弹出(pop)操作 List相关的操作命令 向右…

Vue3(二):Vue3生命周期、自定义hook、其他API、Suspense等组件

Vue3:第二章 一、Vue3生命周期二、自定义hook函数三、toRef四、其他Composition API1.shallowRef与shallowReactive2.readonly与shallowReadonly3.toRaw 与 markRaw,customRef4.provide和inject5.响应式数据的判断 五、组合式API的优势1.选项式API的问题…

股票买卖篇(II,III,IV)--基础,详细!状态机简单应用

目录 股票买卖II 本题思路 关于异常值的解释 代码 股票买卖III 本题思路 (包括对交易过程的理解,需认真理解) 代码 股票买卖 IV 本题思路 代码 股票买卖II 输入样例 6 7 1 5 3 6 4 输出样例 7 输入样例 5 1 2 3 4 5 输出样例 4 本题思路 该题是最…

1. Mysql InnoDB中的索引

一、InnoDB中的索引 InnoDB存储引擎支持以下几种常见的索引:B树索引、全文索引、哈希索引,其中比较关键的是B树索引。 1. B树索引介绍 InnoDB中的索引自然也是按照B树来组织的,前面我们说过B树的叶子节点是用来放数据的。但是放什么数据呢…

攻防世界-基础android

下载链接:下载 参考链接:攻防世界-Mobile-基础android (Misc经验解法)_攻防世界基础android_Q_yt的博客-CSDN博客 方法一: 这是个偏向Misc的解题思路,下载完是个apk文件,载入010 Editor看一下&#xff0…

京东工作8年,肝到T8就剩这份心得了,已助朋友拿到10个Offer

在京东工作了8年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到T7也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记…

TiDB亿级数据亚秒响应查询方案介绍

目录 1 什么是TiDB2 什么是NewSQL2.1 传统SQL的问题2.1.1 升级服务器硬件2.1.2 数据分片 2.2 NoSQL 的问题2.2.1 优点2.2.2 缺点 2.3 NewSQL 特性2.3.1 NewSQL 的主要特性:2.4 三种SQL的对比 3 TiDB怎么来的3.1 TiDB社区版和企业版 4 TIDB核心特性4.1 水平弹性扩展4…

【JUnit技术专题】「入门到精通系列」手把手+零基础带你玩转单元测试,让你的代码更加“强壮”(核心API篇)

手把手零基础带你玩转单元测试,让你的代码更加“强壮”(核心API篇) JUnit 中的重要的 APIAssert 类TestCase 类TestResult 类TestSuite 类 JUnit 中的重要的 API JUnit 中的最重要的程序包是 junit.framework 它包含了所有的核心类。一些重要…

数字孪生:数字世界与现实世界的交汇

数字孪生是一种崭新的技术,指将现实世界中的物理实体、系统或过程通过数字化技术在虚拟数字世界中建立起虚拟模型。数字孪生可以帮助人们以更小的成本地理解和预测现实世界中的物理实体、系统或过程的行为和性能,从而提高生产效率、降低成本、减少风险等。 如今数字孪生技术…

Makerbase SimpleFOC ESP32 例程1 双电机开环速度测试

Makerbase SimpleFOC ESP32 例程1 双电机开环速度测试 第一部分 硬件介绍 1.1 硬件清单 序号品名数量1ESP32 FOC V1.0 主板12YT2804电机2312V电源适配器14USB 线1 注意:YT2804是改装的云台无刷电机,带有AS5600编码器,可实现360连续运转。 主要参数如…

刷题记录:双指针 | leetcode-1156. 单字符重复子串的最大长度 2023/6/3

1156. 单字符重复子串的最大长度 感觉这道题,双指针的思路很好想,但是要直接实现,对我而言还是有一些磕磕绊绊(还是题做少了qaq)。 思路是这样的,比如字符串序列为: aaabaaaba 那么一开始&am…

【leetcode】1156. 单字符重复子串的最大长度

1156. 单字符重复子串的最大长度 问题描述问题分析解决方案 问题描述 1156. 单字符重复子串的最大长度 如果字符串中的所有字符都相同,那么这个字符串是单字符重复的字符串。 给你一个字符串 text,你只能交换其中两个字符一次或者什么都不做&#xff…

基于AT89C52单片机的液晶多功能电子台历设计

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87858426 源码获取 第5章 液晶多功能电子台历的设计 5.1 功能要求 该项目以单片机STC89C54为核心,结合单线数字温度传感器DS18B20、时钟芯片DS1302和液晶显示器12864设计而…

GPU推理和端侧NPU推理的一处不同

端侧AI推理主要使用NPU完成,为了在性能,功耗和面积和通用性之间取得平衡,主流NPU采用了加速器架构,将算子固化在硬件中,并辅以可编程单元执行一些自定义算子/长尾算子兼顾灵活性。在计算方面,为了提高存储使用效率和加速计算,在满足计算精度的前提下,NPU普遍采用定点计…

编程的未来 - 还有未来么?

缘起 唐门教主上个月某天深夜写了一篇博客 --《编程的未来》,要我谈谈感想。 这也是最近软件工程师们聊得比较多的问题,上周,在上海的 “关东小磨” 和十多位 CSDN 博主聚会的时候,大家也稍微谈了一下这个话题,但是谈…

一哥们从小厂逆袭,涨薪50%,真是麻雀啄了牛屁股,雀食牛逼啊

前言 大多数情况下,软件测试人员的个人技能成长速度,远远大于公司规模或业务的成长速度。所以,跳槽成为了这个行业里最常见的一个词汇。 实际上,跳槽的目的无非是为了涨薪或是职业发展,我也不例外。普通本科毕业后&a…

vscode课程学习分析选课作业系统nodejs+vue

软件体系结构方案:由于本系统需要在不同设备上都能运行,而且电脑配置要求也要越低越好,为了实现这一要求,经过考虑B/S结构成为最佳之选。使用B/S结构的系统可以几乎在任何电脑上运行,只要浏览器可以正常工作就可以正常…

操作系统复习5.1.0-I/O管理

分类 按使用特性分 人机交互类:键盘、鼠标、打印机 存储设备:移动硬盘、光盘 网络通信设备:调制解调器 按速率分 低速设备:键鼠 中速设备:打印机 高速设备:磁盘 按信息交换单位分 块设备:…

yum和vim【Linux操作系统】

Linux软件包管理器 yum Linux安装软件: 源代码安装(下载到程序的源代码,进行编译,得到可执行程序,太麻烦,因此有些人会将有些常用的软件提前编写好,做成软件包) rpm安装(…