遇到稍微不正常的代码,叶新晨就会停止这种速度,仔细的看。
半小时之后,叶新晨还没有找到,不过他也不慌张,毕竟时间还长着呢。
一般情况下,找漏洞都是没有源码的,因为软件不是你的,如果把源码给你了,相当于把自家后门没关门告诉你了,那你岂不是为所欲为为所欲为?
而且,BUG漏洞的话常见的有操作系统漏洞、服务器漏洞、服务器软件漏洞、网页系统漏洞。
先说软件方面的漏洞,不是网页系统的。一般的漏洞大家听过的应该是缓冲区溢出漏洞,什么意思呢?
就是存变量的缓冲区超过了最大大小,文本就会冲掉软件本来的代码,造成错误。
缓冲区是内存中存放数据的地方。在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。
缓冲区溢出就好比是将十升水放进只有五升容量的桶里。很显然,一旦容器满了,余下的部分就会溢出在地板上,弄得一团糟。
举个例子,登录系统(不管是网页还是软件、ftp等),都要输入帐号密码,进行身份认证,系统接受你输入的帐号密码,要保存到一个变量里(通常是堆栈),和正确的帐号密码比较,看你是否是合法的用户。
如果我定义一个变量用来存放你输入的密码(假设最多1000位密码),一般人的密码肯定到不了1000位,那么程序就会正常运行,如果有别有用心的人输入了2000位,多余的'1000个字符由于没有位置放,就会冲掉正常的指令,程序就会崩溃。
因为程序最终都会编译成机器码,一行一行的执行,多余的1000个字符冲掉正常的指令后,机器不能识别,就会报错退出,把这1000个字符也换做编译后的机器码,程序执行到这里以后,就执行我们的代码了,这就是缓冲区溢出漏洞。
所以不管是操作系统还是浏览器,只要接入互联网后,就要按照一定的协议收发数据,只要接收的数据没有进行边界检查,就可能造成溢出漏洞。
而为叶新晨他们这样找漏洞的人就是这样,先使程序崩溃,找到有可能有漏洞的地方,再逐语句调试,这是个非常复杂的过程,不过最终都能够找到合适的shellcode使对方机器执行我们的指令。
所以继续的再用半个小时寻找,叶新晨也是找到了毛病所在。
说实话,这个漏洞又是叶新晨依靠经验找出来的漏洞,难度倒是不难,但是如果没有相当丰厚的经验,真的是不太好找的。
这个问题就是程序代码逻辑处理问题,在这个程序代码逻辑节点出现了小BUG,只需要将开源码的程序逻辑重新编辑一下就行。
所以叶新晨也是非常愉快的将这个悬赏提交完成,毕竟再次的一个达不溜向他招手,自然而然的叶新晨还是觉得很开心的。
而这个时候,王晓雪也是出现在了叶新晨的眼前,“老公,你回来了怎么不叫我呢?你饿不饿啊?”
叶新晨将王晓雪拉到自己的腿上坐着,亲了一口,“饿了,我想吃你!”
请收藏:https://m.qhdvk.com
(温馨提示:请关闭畅读或阅读模式,否则内容无法正常显示)