神豪从做慈善开始
作者:保安队大队长 | 分类:都市 | 字数:30.8万
本书由笔趣阁签约发行,版权所有侵权必究
第八十四章 乱杀了
打开悬赏板块,悬赏依旧是五花八门的,这回萧天都只专挑一万左右的接,因为一万左右的悬赏,萧天可以凭借着丰富的经验知识,最迟在两三个小时里面就能解决。
俗称乱杀。
随手眼疾手快的接了一个一万的悬赏。
然后萧天就看了起来,一开始看这些花花绿绿的代码有点头秃,现在萧天觉得自己已经在开始慢慢的适应了。
萧天也是凭借着上位者的压制,一目十行的看了起来,当然如果遇到稍微不正常的代码,萧天就会停止这种速度,仔细的看。
半小时之后,萧天还没有找到,不过他也不慌张,毕竟时间还长着呢。
一般情况下,找漏洞都是没有源码的,因为软件不是你的,如果把源码给你了,相当于把自家后门没关门告诉你了,那你岂不是为所欲为为所欲为?
而且,BUG漏洞的话常见的有操作系统漏洞、服务器漏洞、服务器软件漏洞、网页系统漏洞。
先说软件方面的漏洞,不是网页系统的。一般的漏洞大家听过的应该是缓冲区溢出漏洞,什么意思呢?
就是存变量的缓冲区超过了最大大小,文本就会冲掉软件本来的代码,造成错误。
缓冲区是内存中存放数据的地方。在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。
缓冲区溢出就好比是将十升水放进只有五升容量的桶里。很显然,一旦容器满了,余下的部分就会溢出在地板上,弄得一团糟。
举个例子,登录系统(不管是网页还是软件、ftp等),都要输入帐号密码,进行身份认证,系统接受你输入的帐号密码,要保存到一个变量里(通常是堆栈),和正确的帐号密码比较,看你是否是合法的用户。
如果我定义一个变量用来存放你输入的密码(假设最多1000位密码),一般人的密码肯定到不了1000位,那么程序就会正常运行,如果有别有用心的人输入了2000位,多余的'1000个字符由于没有位置放,就会冲掉正常的指令,程序就会崩溃。
因为程序最终都会编译成机器码,一行一行的执行,多余的1000个字符冲掉正常的指令后,机器不能识别,就会报错退出,把这1000个字符也换做编译后的机器码,程序执行到这里以后,就执行我们的代码了,这就是缓冲区溢出漏洞。
所以不管是操作系统还是浏览器,只要接入互联网后,就要按照一定的协议收发数据,只要接收的数据没有进行边界检查,就可能造成溢出漏洞。
而为萧天他们这样找漏洞的人就是这样,先使程序崩溃,找到有可能有漏洞的地方,再逐语句调试,这是个非常复杂的过程,不过最终都能够找到合适的shellcode使对方机器执行我们的指令。
所以继续的再用半个小时寻找,萧天也是很快找到了毛病所在。
说实话,这个漏洞又是萧天依靠那个牛人程序员经验找出来的漏洞,难度倒是不难,但是如果没有相当丰厚的经验,真的是不太好找的。
这个问题就是程序代码逻辑处理问题,在这个程序代码逻辑节点出现了小BUG,只需要将开源码的程序逻辑重新编辑一下就行。
所以萧天也是非常愉快的将这个悬赏提交完成,毕竟再次的一个达不溜向他招手,自然而然的萧天还是觉得很开心的。
随意的扫了一眼悬赏板块,然后刷新一下,看到一个关于“维护一套辅助库,有个BUG,完成之后两万”的悬赏,萧天也是随意的直接的接了下来。
反正对于他来说,这些就是相当于新手任务一样,只不过稍微会有点费脑力罢了。
接下悬赏后,萧天就看着这套库封装了设备通讯以及各种命令返回信息的识别、分类以及错误监控等功能。
而且这套库由一种很小众的语言写成,这种语言叫TCL,你可以认为它是一种shell脚本,所以继承了命令行写批处理的各种怪异风格;同时它还提供了类似python的进阶功能,比简单的shell script稍微强大一些——这就在水平不高的自动化测试人员和相对强大的语言能力之间取得了平衡。
做过debug的业内人士都知道,一个bug症状越明显、发作越频繁,它就越好处理;最怕的就是这种维护辅助库一年半载不出现一次的。
所以也难怪人家要悬赏这个,毕竟费时间还不一定找得到,没有一定的经验太难了。
萧天也只是大致看了看,目前来说完全没有头绪。
因为相关代码4、5万行都可能是有的;而且这BUG描述也极为模糊、混乱,完全没有方向。
所以对于萧天来说,解决这个bug的过程应该曲折一点。
十分钟之后,在这个BUG之前,萧天在辅助库中又找到了另一个“积年老Bug”。
这个BUG好像属于偶发,时有时无,让人摸不着头脑。
所以萧天准备为这个支撑系统做个模拟运行系统。
为什么要做模拟运营系统,是因为所有这些测试代码其实都要在网元上运行;而这些网元中,性能比较猛的,两台就足够东南亚那些小国全国使用的——从它的电话通讯到电脑网络,全都由这个设备提供支持。
这种设备当然不可能多,如果有测试组想开始测试,就得提前申请;然后如果测试用例有BUG,就把大量机时浪费掉了,那样子写的代码,测试起来就更难了。
而萧天是没有这些的,所以只能搞个模拟系统:只要下发命令,就能从数据库找出记录下来的、对应的命令返回给自己,这样就不需要在真机上调试了。
借助这个模拟系统,萧天就可以把BUG出现前测试组日志里记载的命令返回“喂”给程序逻辑。
这果然使得Bug重现了。
通过到处插日志打印语句,萧天发现这个问题是因为“命令返回的结果信息丢失”引起的,然后进行到这一步,萧天发现调查卡到了这里,下面无法进行下去了。
揉了揉自己的脑袋瓜,萧天感觉头脑昏昏沉沉了。
“先休息一会儿吧,不用那么着急。”
这个时候,张雪也是说道,她在旁边看的一清二楚。
那密密麻麻的代码还有银行卡到账的工资都令张雪有些愕然。
这么最多两三个小时的功夫,几万块就到手了,可不比她累死累活一个月还要赚得多?
难怪这么有钱呢……
张雪也是心里面想着。