1 / 20
文档名称:

IPV6的设置指南.doc

格式:doc   大小:56KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IPV6的设置指南.doc

上传人:dyx110 2019/12/16 文件大小:56 KB

下载得到文件列表

IPV6的设置指南.doc

相关文档

文档介绍

文档介绍:IPV6的设置指南(401)介绍Propolice怎样保护stack-smashing的攻击整理:XUNDI低级......|-----------------------------------||如果你觉得这中文乱七八糟,JMP0xAA||-----------------------------------||....................||-----------------------------------|0xAA------>|请看文章最后提供原文,||如果你觉得还是看不懂原文,JMP0xBB||-----------------------------------||............||-----------------------------------|0xBB------->|请去请教backend,warning3,scz等他们||如果你请教以后还是不懂,||-----------------------------------||..............||-----------------------------------|------->|JMP0x黄河||-----------------------------------|高级......stack-smashing是一种引起设备停止并且导致允许攻击者侵入系统的攻击方法,一般它被使用在叫缓冲溢出的应用程序漏洞上。stack-smashing攻击是在UNIX安全新闻报道上最常见最普通的攻击方式。在1999年,,使将近1500000系统遭受此漏洞的侵害。多数应用程序使用C写的时候使用缓冲区(buffer),这个缓冲区是一个保存了一些同样数据类型的数据,通常是字符数组,在堆栈里临时保存这些字符串操作的临时值。stack-smashing攻击通常是提供一个超过实际BUFFER大小的字节数到缓冲区,这就导致了破坏了BUFFER中的内容,这些内容可能就是调用函数的返回地址和函数指针。这文章提供了系统的解决缓冲溢出攻击的方法,,保护多种stack-smashing攻击,支持多种处理器。下面讲讲攻击说明和它们的类别缓冲溢出漏洞通常在应用程序需要读取外部信息如字符串时,接收缓冲区相对与实际的输入字符串小而且应用程序又不正确检查这些操作时产生。缓冲区在实时运行时分配空间到堆栈,这时候堆栈中保存了一些可执行函数的信息:如本地变量,参数变量,和返回地址。而超长的字符串改动了这些信息,如攻击者把一系列机器语言命令作为字符串插入到堆栈,并使这些字符串覆盖在堆栈中的返回地址为这些命令的地址(我们通常所说的SHELLCODE),这样到函数返回的时候就执行了这些代码。通常这些方法的最终目标是获得有一定权利的SHELL。图1描述了在一函数调用的时候典型的堆栈结构,在图的在最底下是堆栈指针在堆栈的顶,C语言程序在堆栈中从堆栈顶(就是内存低端)使用下面的顺序来排列:本地变量,前栈帧指针(previousframepointer--前栈帧指针),这对被调函数而言不可见,也就是被压栈保存的%ebp,返回地址,和被调函数的入口参数。其中下面所示的帧栈指针(framepointer)定位了本帧以及前栈帧的帧指针存储在调用者的栈帧中。高址......|-----------------------------------||传递给函数的参数|向上是字符|-----------------------------------|串增长方向|函数的返回地址(RET)||-----------------------------------|帧栈指针-->|保存的前栈帧指针|(framepointer)|(previousframepointer)||-----------------------------------||局部变量|向下是堆栈|-----------------------------------|增加方向|buffer||-----------------------------------|堆栈指针-->|-----------------------------------|......低址图1--堆栈结构图2的函数foo是一个有漏洞的函数,它产生的堆栈结构就如图1所示。这函数读取了环境变量'HOME'的内容到大小为128字节的'buffer'中,但是由于strcpy函数没有正确检查输入的大小,它就能拷贝超过128字节的数据到"buffer"中,想象下如果"HOME"变量有这样