第六节 缓冲区溢出

章节报错(免登陆)

91书院(91shuyuan.com)更新快,无弹窗!

洞,我可以利用这个漏洞进行攻击。”
    孙云梦好奇地问道:“漏洞?什么漏洞?”
    “缓冲区溢出漏洞。”段天狼答道。
    “不会吧?面具岛屿的自用系统,竟然会有这么初级的漏洞?”孙云梦笑着问道。
    “越是复杂的系统,越是有简单的漏洞。”段天狼答道。
    在这里,需要介绍一下,何所谓缓冲区溢出漏洞。
    一般来说,只要是黑客,就都知道缓冲区溢出漏洞是怎么回事。
    在最近的远程网络攻击中,利用缓冲区溢出漏洞的占绝大多数,算是最为普及地一种远程攻击方式了。而它之所以会这么普及,正是因为这个漏洞太普通了,而且易于达成进攻者的目标——利用一个匿名的Internet用户获得一台主机的部分或全部的控制权!
    要说缓冲区溢出漏洞,我们首先要知道什么是缓冲区。
    我们打个比方,你是个租书店老板,你的店里很好几千册书,这些书有武侠小说,有言情小说,还有玄幻小说,每天都有很多人读者来你这里租书看。
    刚开始的时候,你或许没什么感觉,但是等到你店开久了,你就开始有经验了,有的书很多人借,有的书很少人借。于是,为了招徕客户,你就专门整理出一个柜台,专门放这些很多人租的书。
    这样的话呢,再有客人来的时候,他可能就直接从这个柜台上拿了,不用满店跑,大大节省了客人的时间。而这个专用柜台,就是缓冲区。
    计算机上几乎所有的存储设备都有缓冲区,比如硬盘,当我们向我们的硬盘输入数据的时候,通常都是先输入到缓冲区,直到你把缓冲区塞满之后,才会再写入硬盘。
    这样的好处,就跟前面说的租书店的故事一样,可以节省时间,避免过于频繁地写盘。
    现在大家知道缓冲区是怎么回事了,那么缓冲区溢出又是怎么回事呢?
    我们再来形象地打个比方,你是个很成功的公司高层,你有一个专职小秘。她除了供你调戏,帮你打文件,跑腿以及帮你陪客户喝酒之外,她还得帮你干另外一件事,那就是帮你倒茶。
    有一天,她来到在你桌边,往你杯子里倒茶。这个杯子是只能装八百五十毫升水的杯子,而茶壶是一千五百毫升的容量,通常来说,你的小秘书会往你的茶杯里倒上七百五十至八百毫升,总之绝对不超过八百五十好生的水。
    但是这一次,你的秘书却一直让水壶里的水往你的杯子里灌。那么结果会是什么呢?很显然,水将会从杯子里溢出来。
    这跟缓冲区溢出是同样的道理,当数据容量超过缓冲区的容量的时候,就像水一样,缓冲区的数据也会溢出来,这也就是缓冲区溢出。
    缓冲区溢出分为两种情况,一种是偶然的,一种是恶意的。如果是偶然的,那没什么大不了的,不过就是应用程序错误而已。但是如果是恶意的,那么黑客就可以趁机运行特别程序,获得优先级,指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,部分或者全部的控制这台计算机。
    这样说,或许大家还是有点头晕,好吧,那我们就再形象一点,接着刚才的比方。
    一般来说,你的小秘把水倒满,很可能是一时疏忽,这个时候,最多就是你被烫了一下,不满地瞪了她一眼,让她把桌子抹干净就完了。
    这就是偶然的缓冲区溢出。
    但是如果这个时候,你的秘书已经被别人收买了,她就会故意狂倒,水从杯子里溢出来,把你的整个桌面倒地到处都是水,连你腿上都滴满了。你气死了,跳起来骂娘,然后到另一个房间去换衣服。
    而这个时候,你的秘书就趁机赶紧把你桌上的文件全部换了一遍,等你回来的时候,看到的,是你的敌人给你准备好的文件。这些文件促使你对当前的形势产生错误的判断,于是,你就按照敌人所希望你做的那样,做出他们想要你做的决定。
    你自己并不觉得,但是事实上,你已经被你的敌人控制住。
    这就是恶意的缓冲区溢出。
    一般来说,缓冲区溢出攻击的目的,在于扰乱具有某些特权运行的程序的功能,这样可以使得攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了。为了达到这个目的,攻击者必须达到如下的两个目标:
    第一,在程序的地址空间里安排适当的代码。
    第二,通过适当地初始化寄存器和存储器,让程序跳转到我们安排的地址空间执行。
    两个目标,需要两个步骤来完成,第一个步骤就是将攻击代码放入被攻击程序的地址空间。第二个步骤,就是使目标程序的缓冲区溢出,并且执行转移到攻击代码。
    这个过程方法很多,就不在这里一一赘述了。
    而段天狼就是在面具岛屿的共用系统中,发现了系统中发现了
章节报错(免登陆)
验证码: 提交关闭