第八十四章 乱杀了(1 / 2)

投票推荐 加入书签 留言反馈

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

章节目录