第二十九章 我想吃你-《这个吞金兽不好养》


    第(3/3)页

    就是存变量的缓冲区超过了最大大小,文本就会冲掉软件本来的代码,造成错误。

    缓冲区是内存中存放数据的地方。在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。

    缓冲区溢出就好比是将十升水放进只有五升容量的桶里。很显然,一旦容器满了,余下的部分就会溢出在地板上,弄得一团糟。

    举个例子,登录系统(不管是网页还是软件、ftp等),都要输入帐号密码,进行身份认证,系统接受你输入的帐号密码,要保存到一个变量里(通常是堆栈),和正确的帐号密码比较,看你是否是合法的用户。

    如果我定义一个变量用来存放你输入的密码(假设最多1000位密码),一般人的密码肯定到不了1000位,那么程序就会正常运行,如果有别有用心的人输入了2000位,多余的'1000个字符由于没有位置放,就会冲掉正常的指令,程序就会崩溃。

    因为程序最终都会编译成机器码,一行一行的执行,多余的1000个字符冲掉正常的指令后,机器不能识别,就会报错退出,把这1000个字符也换做编译后的机器码,程序执行到这里以后,就执行我们的代码了,这就是缓冲区溢出漏洞。

    所以不管是操作系统还是浏览器,只要接入互联网后,就要按照一定的协议收发数据,只要接收的数据没有进行边界检查,就可能造成溢出漏洞。

    而为叶新晨他们这样找漏洞的人就是这样,先使程序崩溃,找到有可能有漏洞的地方,再逐语句调试,这是个非常复杂的过程,不过最终都能够找到合适的shellcode使对方机器执行我们的指令。

    所以继续的再用半个小时寻找,叶新晨也是找到了毛病所在。

    说实话,这个漏洞又是叶新晨依靠经验找出来的漏洞,难度倒是不难,但是如果没有相当丰厚的经验,真的是不太好找的。

    这个问题就是程序代码逻辑处理问题,在这个程序代码逻辑节点出现了小bug,只需要将开源码的程序逻辑重新编辑一下就行。

    所以叶新晨也是非常愉快的将这个悬赏提交完成,毕竟再次的一个达不溜向他招手,自然而然的叶新晨还是觉得很开心的。

    而这个时候,王晓雪也是出现在了叶新晨的眼前,“老公,你回来了怎么不叫我呢?你饿不饿啊?”

    叶新晨将王晓雪拉到自己的腿上坐着,亲了一口,“饿了,我想吃你!”


    第(3/3)页