第十六卷 隐藏在幕后的影子 第六节 缓冲区溢出(6 / 8)
,这也就是缓冲区溢出。
缓冲区溢出分为两种情况,一种是偶然的,一种是恶意的。如果是偶然的,那没什么大不了的,不过就是应用程序错误而已。但是如果是恶意的,那么黑客就可以趁机运行特别程序,获得优先级,指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,部分或者全部的控制这台计算机。
这样说,或许大家还是有点头晕,好吧,那我们就再形象一点。接着刚才的比方。
一般来说,你地小秘把水倒满。很可能是一时疏忽,这个时候,最多就是你被烫了一下,不满地瞪了她一眼,让她把桌子抹干净就完了。
这就是偶然的缓冲区溢出。
但是如果这个时候。你地秘书已经被别人收买了,她就会故意狂倒,水从杯子里溢出来。把你的整个桌面倒地到处都是水,连你腿上都滴满了。你气死了,跳起来骂娘,然后到另一个房间去换衣服。
而这个时候,你的秘书就趁机赶紧把你桌上的文件全部换了一遍,等你回来的时候。看到地,是你的敌人给你准备好的文件。这些文件促使你对当前地形势产生错误的判断,于是,你就按照敌人所希望你做的那样。做出他们想要你做的决定。
你自己并不觉得,但是事实上,你已经被你的敌人控制住。
这就是恶意的缓冲区溢出。
一般来说。缓冲区溢出攻击地目的,在于扰乱具有某些特权运行的程序的功能。这样可以使得攻击者取得程序地控制权,如果该程序具有足够的权限,那么整个主机就被控制了。为了达到这个目的,攻击者必须达到如下地两个目标:
第一,在程序的地址空间里安排适当地代码。
第二,通过适当地初始化寄存器和存储器,让程序跳转到我们安排的地址空间执行。
两个目标,需要两个步骤来完成,第一个步骤就是将攻击代码放入被攻击程序的地址空间。第二个步骤,就是使目标程序的缓冲区溢出,并且执行转移到攻击代码。
这个过程方法很多,就不在这里一一赘述了。
而段天狼就是在面具岛屿的共用系统中,发现了系统中发现了一个有破绽的代码。段天狼之所以向这个代码传递出一个简单的参数,就可以导致这个系统发生缓冲区溢出。
因为这个参数的数据量很小,如果隐蔽得好的话,很可能戴蒙无法察觉。而段天狼也就很可能在神不知鬼不觉的情况下,将他所制作的最新型的木马,伪装成系统程序