第六节 缓冲区溢出(4 / 6)

天擎 撒冷 4628 字 2021-06-06

现在大家知道缓冲区是怎么回事了那么缓冲区溢出又是怎么回事呢?

我们再来形象地打个比方你是个很成功的公司高层你有一个专职小秘。她除了供你调戏帮你打文件跑腿以及帮你陪客户喝酒之外她还得帮你干另外一件事那就是帮你倒茶。

有一天她来到在你桌边往你杯子里倒茶。这个杯子是只能装八百五十毫升水的杯子而茶壶是一千五百毫升的容量通常来说你的小秘书会往你的茶杯里倒上七百五千至八百毫升总之绝对不过八百五十好生的水。

但是这一次你的秘书却一直让水壶里的水往你的杯子里灌。那么结果会是什么呢?很显然水将会从杯子里溢出来。

这跟缓冲区溢出是同样的道理当数据容量过缓冲区的容量的时候就像水一样缓冲区的数据也会溢出来这也就是缓冲区溢出。

缓冲区溢出分为两种情况一种是偶然的一种是恶意的。如果是偶然的那没什么大不了的不过就是应用程序错误而已。但是如果是恶意的那么黑客就可以趁机运行特别程序获得优先级指示计算机破坏文件改变数据泄露敏感信息产生后门访问点部分或者全部的控制这台计算机。

这样说或许大家还是有点头晕好吧那我们就再形象一点。接着刚才的比方。

一般来说你地小秘把水倒满。很可能是一时疏忽这个时候最多就是你被烫了一下不满地瞪了她一眼让她把桌子抹干净就完了。

这就是偶然的缓冲区溢出。

但是如果这个时候。你地秘书已经被别人收买了她就会故意狂倒水从杯子里溢出来。把你的整个桌面倒地到处都是水连你腿上都滴满了。你气死了跳起来骂娘然后到另一个房间去换衣服。

而这个时候你的秘书就趁机赶紧把你桌上的文件全部换了一遍等你回来的时候。看到地是你的敌人给你准备好的文件。这些文件促使你对当前地形势产生错误的判断于是你就按照敌人所希望你做的那样。做出他们想要你做的决定。

你自己并不觉得但是事实上你已经被你的敌人控制住。

这就是恶意的缓冲区溢出。

一般来说。缓冲区溢出攻击地目的在于扰乱具有某些特权运行的程序的功能。这样可以使得攻击者取得程序地控制权如果该程序具有足够的权限那么整个主机就被控制了。为了达到这个目的攻击者必须达到如下地两个目标:

第一在程序的地址空间里安排适当地代码。

第二通过适当地初始化寄存器和存储器让程序跳转到我们安排的地址空间

举报本章错误( 无需登录 )