缓冲区溢出与防护

news2024/11/17 23:53:37

目录

一、初识缓冲区溢出

1.1 缓冲区溢出概念

1.2 缓存区

1.3 缓存区溢出的危害

1.4 缓存区溢出事件

二、缓存区溢出攻击

2.1 溢出原理

2.2 典型的寄存器

三、缓存区溢出防御

3.1 缓冲区溢出攻击目标

3.2 缓冲区溢出条件

3.3 缓冲区溢出防范

3.3.1 程序设计过程中

3.3.2 个人用户


一、初识缓冲区溢出

1.1 缓冲区溢出概念

缓冲区溢出:计算机程序的一种可更正性缺陷,向程序缓冲区写入超长内容,覆盖其他空间数据,从而破坏程序堆栈,造成程序崩溃或转而执行其他指令。 

1.2 缓存区

缓冲区是一块连续的计算机内存区域。在程序运行过程中,程序的调用参数、返回地址及用户输入等数据均需要存放在一个临时空间内,这个临时的存放空间就被称为缓冲区也就是所说的堆栈段

1.3 缓存区溢出的危害

过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可能导致系统崩溃;

覆盖函数返回地址,使得程序跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。

1.4 缓存区溢出事件

  • 2003年8月“冲击波”蠕虫病毒(ms03-026)
  • 2004年5月“震荡波”蠕虫病毒 (MS04-011)
  • 2007年疯狂的蠕虫病毒“VanBot”(ms07-02q)
  • 2015 top 10 “GHOST幽灵幽灵” 漏洞

二、缓存区溢出攻击

2.1 溢出原理

根本原因是程序中很多函数对用户的输入越界不保护。比如,C语言中,指针和数组越界不保护是根源,C库函数中:strcat(). strcpy()等能提供溢出。

2.2 典型的寄存器

  • EIP:扩展指令指针,用于存放下一条指令的地址,即存放返回地址;
  • EBP:扩展基指针,用于指向栈底;
  • ESP:扩展堆栈指针,指向栈顶,(数据覆盖存储单元,低地址往高地址走)。

三、缓存区溢出防御

3.1 缓冲区溢出攻击目标

  • 利用溢出覆盖程序的其他存储单元,造成被攻击者的服务拒绝
  • 利用远程服务的溢出漏洞,远程获得目标的控制权,提升权限

3.2 缓冲区溢出条件

  • 在被攻击程序的地址空间安放shellcode
  • 通过适当的初始化寄存器和内存,让程序跳转到入侵者安排的地址空间执行

3.3 缓冲区溢出防范

3.3.1 程序设计过程中

对于软件开发者,使用安全的函数:

gets() vs fgets( )
strcpy() vs strncpy()
sprintf() vs snprintf()

利用编译器的边界检查来实现缓冲区的保护,这个方法使得缓冲区溢出不可能出现,从而完全消除了缓冲区溢出的威胁。

3.3.2 个人用户

  • 关闭不需要的特权程序;
  • 及时给系统和服务程序漏洞打补丁;
  • 降低CMD权限;
  • 添加服务番WAF类产品。

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

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

相关文章

【后端开发】狂神笔记:Redis进阶

文章目录 1 Redis事务1.1 Redis事务简介1.2 Redis事务操作过程1.2.1 开启事务--->执行事务1.2.2 取消事务(discurd) 1.3 事务错误1.3.1 编译期异常1.3.2 运行时异常 2 Redis实现乐观锁2.1 乐观锁和悲观锁2.2 正常执行2.3 测试异常执行 3 Jedis3.1 导入依赖3.2 编码测试3.2.1…

青翼科技自研模块化互联产品 • 模拟采集FMC子卡【产品资料】

FMC122是一款基于FMC标准规范,实现2路16-bit、1GSPS ADC同步采集,2路16-bit 2.5GSPS DAC同步回放功能子卡模块。该模块遵循VITA57.1标准,可直接与FPGA载卡配合使用,板卡ADC器件采用TI的ADS54J60芯片,该芯片具有两个模拟…

EasyExcel实现execl导入导出

引言 在实际开发中,处理 Excel 文件是一个常见的需求。EasyExcel 是一个基于 Java 的开源库,提供了简单易用的 API,可以方便地读取和写入 Excel 文件。本文将介绍如何使用 EasyExcel 实现 Excel 导入功能,以及一些相关的技巧和注…

java的线程池

一、线程池概念 若不使用线程池,在新创建的线程start()后执行完run()就自动销毁了,造成了资源的浪费。使用线程池可以暂时存储线程。 线程池的主要核心原理: 线程池的代码实现: 注意:在实际开发中线程池并不会关闭&a…

【MySQL】一文带你了解排序检索数据

🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指…

经典电路分析——看看大佬设计或代代人改进的作品——欢迎批评指正

1、TTL反相器 1)输入0.3v a)T1,T2,T4 先分析T1的工作状态:计算ube1和uce1 ube1大于开启电压,所以ube10.7v。 因为T2,T4要想导通,V1b上需要有打通三个PN结的能力,也就是说V1b3*0.…

【UE 从零开始制作坦克】3-履带移动效果

目录 一、设置转向灵敏度 二、原地掉头 三、履带移动效果 效果 一、设置转向灵敏度 为了解决坦克转向灵敏度过高的问题,我们首先打开“TankZongLei”蓝图 选中“载具移动(MovementComp)(继承)”将转向输入率中的上…

数据结构图解--队列 的实现/算法+源码

图解--队列 最终的效果接下来 我们要做的就是 使用编程实现这种意识形态下的结构创建队列结构体初始化init进队入队 尾部插入队列的判断满操作出队队列是否为空遍历队列代码的操作交互意识 最终的效果 1.队列的结构形式 队列是一种线性结构 但是特殊的线性结构 只要的特殊在于…

【炫酷登录界面】详解5款高级的前端登录页面及实现源码(附完整源码)

【写在前面】 其实好早之前我就想写这篇文章了,也有些网友还会私信我,说有时候公司要求登录页面的改造,问我能不能出一期关于登录页的文章,于是乎我也是拖到这个时候才整理出来,其实每篇文章的效果内容我都是自己亲自去…

基于51单片机设计的花样流水灯设计

一、项目介绍 花样流水灯是一种常见的LED灯效果,被广泛应用于舞台表演、节日庆典、晚会演出等场合。在现代智能家居、电子产品中,花样流水灯也被广泛使用,通过调整亮灭顺序和时间,可以实现各种炫酷的灯光效果,增强用户体验。而51单片机作为一种常见的嵌入式开发平台,具有…

深搜-剪枝优化

目录 1.问题引入 2.知识讲解 【搜索术语】 (1) *可行性剪枝*: (2) *预处理剪枝*: (3) *重复性剪枝*: (4) *最优性剪枝*: &…

动态规划IV (118、119、198、213、337)

CP118 杨辉三角 题目描述: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。 学习记录: 思想就是没有思想,的杨辉三角,但是注意resiz…

AUTOSAR MCAL之SPI(Specification of SPI Handler/Driver)

本文将详细介绍AUTOSAR MCAL SPI模块的知识点及注意事项,本模块的配置会在其他文章进行分享。本文大部分内容来源于标准,并参照了NXP S32K1系列的 MCAL SPI的代码。 耐心看完本文后,你就对AUTOSAR MCAL SPI有了非常深入的了解。 目录 1. 模…

在githhub上创建个人主页的方法【2023更新版】

01-进入github的网站,链接 https://github.com/ ,然后注册,登陆,注意登陆时设置的用户名(username)就是将来你个人主页的三级域名,所以这里一定要慎重填写username。如下图所示: 02-注册完成后进入个人主…

【备战秋招】每日一题:5月13日美团春招第四题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第四题-沙堡 在线评测链接:P1289 题目描述 塔子哥在海边建了一个沙堡乐园。 里面有一个巨大的沙堡,塔子哥每年都会增加这个沙堡的层数,但也有一定…

Found a swap file by the name “.credentials.swp“

问题 使用vim终端编辑一个文件的时候,遇到了一个提示:Found a swap file by the name ".credentials.swp" 解决 这是由于编辑文件意外退出导致的,产生了.swp文件,这个时候,只要按下键盘【A】键 然后,使用…

Easy_Trans轻松让你的项目减少30%SQL代码量

什么是Easy_Trans Easy Trans是一款用于做数据翻译的代码辅助插件,利用MyBatis Plus/JPA/BeetlSQL 等ORM框架的能力自动查表,让开发者可以快速的把ID/字典码 翻译为前端需要展示的数据。 easy trans的优点 功能多样 缓存支持 跨微服务翻译支持(User和…

蓝奥声核心技术分享 ——无线单火控制技术

1.技术背景 无线单火控制技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术--边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术属于物联网边缘域的无线通信与智能控制技术领域。 对于不同智能应用场景&am…

安庆师范大学之计科-数据结构MOOC期末考试

单选 5分/题,共30题 1、在长度为n的顺序表的第i个位置上插入一个元素,i的合理取值范围是( )。 A.1≤i≤n B.任意正整数 C.i≥0 D.1≤i≤n1 正确答案:D 2‏、已知L是带表头结点单链表的头指针,摘除…

kubernetes operator解析

您是否想过站点可靠性工程 (SRE) 团队如何有效地成功管理复杂的应用程序? 在 Kubernetes 生态中,只有一个答案:Kubernetes Operators! 在本文中,我们将研究它们是什么以及它们是如何工作的。 Kubernetes Operator 概念…