- 1
- 0
- 约3.2千字
- 约 7页
- 2018-11-24 发布于福建
- 举报
缓冲区溢出漏洞攻击初析
缓冲区溢出漏洞攻击初析
摘 要
本文详细描述和分析了缓冲区溢出攻击的原理,然后就如何对缓冲区溢出攻击漏洞构造攻击程序进行了详细的分析。
【关键词】缓冲区溢出 栈溢出攻击 Shellcode
在Internet高度普及的今天,缓冲区溢出漏洞作为最常见的软件安全漏洞,是黑客攻击中经常利用的一个漏洞。通过利用溢出漏洞,攻击者可以使被攻击的主机改变原代码的执行流程,转而执行攻击者构造的恶意代码。前些年,缓冲区溢出攻击一度占到了网络攻击总量的百分之五十以上,只是近年来软件厂商逐渐加强了操作系统和应用软件的安全建设,采用了一些DEP、ASLR等对抗措施,才使得缓冲区溢出漏洞呈现逐年减少的趋势,但在企业内网中,缓冲区溢出漏洞仍然普遍存在。因此,依然有必要对缓冲区溢出漏洞进行一些研究,从而开展有效的防范措施。
1 缓冲区溢出漏洞定义及原理
1996年,Aleph One在Phrack杂志发表的“Smashing the Stack for Fun and Profit”是缓冲区溢出的经典之作,第一次详细地介绍了缓冲区溢出产生的原理和利用方法。缓冲区溢出漏洞攻击是指攻击者通过在缓冲区写入超过预定长度的数据造成所谓的溢出,破坏了堆栈的原有数据结构,使程序的返回地址发生变化,使它指向溢出程序中恶意代码,这样就达到了攻击者的目的。
常见的缓冲区溢出漏洞包括栈溢出和堆溢出漏洞,本文主要结合实验简要分析栈溢出的攻击原理。要充分理解缓冲区溢出漏洞的基本原理,就要从理解系统的内存结构开始。系统的内存结构主要包含有text、data、bss、heap和stack等区段。其中,代码text区,是由程序的代码段,为只读数据,任何对其写入的操作都会导致段错误(segmentation violation); 而bss 和data 都是可写的,它们保存全局变量,data 段包含已初始化的静态变量,而bss 包含未初始化的数据;heap是堆区,stack是栈区。
栈结构及溢出原理:
堆栈是操作系统中非常重要的一种结构,系统或用户进程通过堆栈用来完成各种函数调用。对于系统中的每个进程来说,都有其各自独立的堆栈空间,堆栈空间随着进程的创建而被创建,随着进程的结束而被销毁。与系统中其他内存空间的增长有所不同,堆栈的增长方向是由内存高地址向低地址进行的,正是由于堆栈的这个特点导致了一系列的安全问题。
当一个函数调用另一个函数的时候,其栈帧结构如图2所示。在正常情况下,被调函数执行完毕,将被调函数的返回地址传给EIP寄存器,CPU从EIP寄存器取指令地址,返回主函数继续执行。如果黑客特意构造数据,使被调函数的局部变量越界,这样就有可能破坏栈中的相邻变量的值,甚至破坏栈帧中所保存的EIP、EBP值等重要数据。成功的缓冲区溢出攻击会用精心设计的数据覆盖返回地址,使被调函数执行完后将修改后的返回地址传入EIP,从而使CPU执行攻击代码(shellcode)。
2 缓冲区溢出漏洞攻击的构造
通过前面的分析,我们大致了解了构造缓冲区溢出漏洞需要考虑以下3个方面的问题。一是找出缓冲区溢出要覆盖或修改的返回地址EIP。如栈溢出中的返回地址在栈中的存储位置。二是将返回地址的值修改为何值?为了完成程序执行流程控制权的转移,攻击者将影响程序执行流程的EIP值进行修改,使其能够跳转至攻击者预期的代码进行执行。如何定位注入指令在目标程序中的位置,以及在存在限制条件如何完成程序控制权的移交,是一项重要的挑战。三是要构造合适的指令代码,即Shellcode。在程序控制权交至攻击者注入的指令代码后,那么这段代码具体完成什么功能是由攻击者开发的。这段代码有时被称为攻击者的payload,由于这个payload通常为攻击者提供了一个远程shell访问,因此也被称为Shellcode。由于受目标主机的缓冲区大小限制,Shellcode长度一般越小越好。Shellcode构造步骤一般如下:
(1)先用C语言程序编写实现Shellcode的功能的代码。
(2)将上面编写的代码通过编译器进行编译,然后修改为带有Shellcode特点的汇编代码(精通汇编语言的人可直接使用汇编语言编写程序)。
(3)根据汇编程序得到机器码形式的Shellcode。
3 缓冲区溢出漏洞实验
在了解了缓冲区溢出攻击的原理之后,下面给出一个远程栈溢出的例子。图1所示的程序是一个存在缓冲去溢出漏洞的服务器端程序。该程序主要功能是实现字符串接收与回显,通过windows socket机制创建一个服务器端socket,并在3764端口上进行监听;在接受客户端连接之后,把客户端输入的字符串统计接收的字节数,并进行回显。该程序的被调函数overflow在
您可能关注的文档
- 结核性胸膜炎68例临床剖析.doc
- 结核性脑膜炎62例住院治疗临床剖析.doc
- 结核性脑膜炎各期磁共振表现及剖析.doc
- 结核性脑膜炎并发脑梗死16例临床剖析.doc
- 结核性脑膜炎患者抗结核治疗致药物性肝炎临床剖析.doc
- 结核病死亡59例临床剖析.doc
- 结核病患者抗结核治疗中不良反应临床剖析.doc
- 结核病防治知识浅述.doc
- 结核风湿症25例临床剖析.doc
- 结直肠癌155例剖析.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
最近下载
- 2025届福建省厦门市思明区小学三年级上学期科学试题及答案.docx
- 2025生产安全事故伤害损失工作日判定.docx
- 金融工程深度报告:股票关联与溢出效应因子构建-中信建投证券-0页.pdf VIP
- 常州纺织服装职业技术学院单招《数学》练习题【学生专用】附答案详解.docx VIP
- 中药涂擦疗法操作规范学习培训课件.pptx VIP
- 福建教育学院 石修银【特级教师】.ppt VIP
- 古诗词诵读 《虞美人》课件 (共24张PPT)统编版高中语文必修上册.ppt.pptx VIP
- 小规模经营网约房管理规范及编制说明.pdf
- 支委候选人初步人选考察谈话记录.docx VIP
- 2025年北师大版高中数学数学建模实战试卷.docx VIP
原创力文档

文档评论(0)