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

缓存溢出

缓存溢出(Buffer overflow),是指在存在缓存溢出安全漏洞的计算机中,攻击者可以用超出常规长度的字符数来填满一个域,通常是内存区地址。在某些情况下,这些过量的字符能够作为“可执行”代码来运行。从而使得攻击者可以不受安全措施的约束来控制被攻击的计算机。

1. 缓存溢出攻击方式

1.1 破坏活动记录

函数调用发生时,调用者会在栈中留下函数的活动记录,包含当前被调函数的参数、返回地址、前栈指针、变量缓存区等值,它们在栈中的存放顺序如图所示。
在这里插入图片描述

由它们在栈中的存放顺序可知,返回地址、栈指针与变量缓存区紧邻,且返回地址指向函数结束后要执行的下一条指令。栈指针指向上一个函数的活动记录,这样攻击者可以利用变量缓存区溢出来修改返回地址值和栈指针,从而改变程序的执行流。

1.2 破坏堆数据

程序运行时,用户用C、C++内存操作库函数如malloc、free等在堆内存空间分配存储和释放删除用户数据,对内存的使用情况如内存块的大小、它前后指向的内存块用一个链接类的数据结构予以记录管理,管理数据同样存放于堆中,且管理数据与用户数据是相邻的。这样,攻击者可以像破坏活动记录一样来溢出堆内存中分配的用户数据空间,从而破坏管理数据。因为堆内存数据中没有指针信息,所以即使破坏了管理数据也不会改变程序的执行流,但它还是会使正常的堆操作出错,导致不可预知的结果。

http://www.lryc.cn/news/2415829.html

相关文章:

  • Linux USB 驱动实验
  • 用户行为分析
  • CodeGear Delphi 2007 for Win32 专业版下载地址及安装、破解方法
  • VBScript基础,变量,函数,流程
  • android布局layout,Android布局(layout)
  • Vmware17.5.1安装CentOS-Stream-9 【超超详细图文安装教程】
  • Django项目实战----接入第三方QQ登录绑定用户
  • 站外SEO应该怎么做?
  • 华为ct3100在entware上安装debian环境且在debian中安装samba过程
  • Blog主流程序整理(转)
  • Ubuntu7.04安装全实录
  • 3ds Max 2019: Advanced Materials 3ds Max 2019:材质高级教程 Lynda课程中文字幕
  • 数据库原理实验二 数据库管理 实验报告
  • 2007年度全国国际旅行社100强名单
  • wpe使用方法(详细)(--新加秒10图)(10号继续可用)
  • 黑莓9520拆机过程
  • 吴宗宪主持妙语
  • 处理器架构 (十四) arm1176 微架构下 各芯片的不同
  • Behance 大神推荐2019 年所有设计领域的最新趋势!
  • 试用 smartdraw 2010 方便快捷的图表工具
  • push notification
  • GB28181转SIP网关的优势
  • 开源项目介绍 |TencentOS Tiny-腾讯物联网操作系统
  • 中文翻唱日语歌曲大全
  • 苹果 iphone降级
  • 传智播客《巴巴运动网视频教程(11-106)》avi格式以及后续44集视频包含全部源代码和资源
  • CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
  • 实现单点登录的几种方式及原理
  • 致所有测试员:一面二面都过了,千万别栽在HR面——70道HR面试题分享
  • 46家中外知名企业笔试面试题目