分节阅读 47(2/2)
这个关卡当然难不倒许毅,只能拦拦菜鸟而已,许毅有n种方法可以破解。这个效果主要是用一种名为javascrit的动态脚本实现的注意:此语言和传说中的java语言没有任何亲戚关系,号称被误解最为严重的编程语言。当访问者点击鼠标右键的时候,它就会第一时间得知捕获,然后按照程序员编写的预定程序功能来响应这个“事件”,例如点击右键什么反应都没有、弹出对话框等功能。
那么,怎样才能破解呢对了,就是让这个脚本语言失效,让它不起作用。
网页浏览器如ie内部集成了一个脚本语言的解释功能,只要将这个功能给禁用掉,那网页中的脚本程序就成了摆设,什么效果都不会有。而这个功能是很容易就可以禁用掉的,只要在简单的勾掉其中的一个功能选项而已。
不过对许毅来说,这个方法还是相对比较麻烦,等看完源代码之后又要把设置还原。因为如果禁用掉这个功能,以后网页中的一些动态效果都没有了。许毅用的方法是直接在地址栏中的网址前面敲入一个命令“view-source:”,这个命令也是浏览器本身认识的命令,意思就是“查看源文件”,执行“viewsource:”之后,里面的源代码就显示出来了。
还有一个比较简单的方法,那就是直接用浏览器工具栏上的查看“源文件”功能。除此之外,还可以用其他软件打开,例如s系统中的记事本,写字板之类的,直接把网址填入要打开对话框的地址内,都可以。如果不怕麻烦,那就直接用下载软件将这个页面下载下来再看。
许毅很顺利地看到了第二关网页的源代码,大致浏览了一下,发现了一段比较可疑的编码,许毅推断过关密码应该隐藏在其中。
这段编码内容为:“b9a7cfb2b9fdb9d8a3a1b1beb9d8c3dcc2ebcac74532”
第二关还有点难度,许毅呵呵一笑。看到这个段奇怪的编码他就知道怎么破解了。看这它们的形式,很显然是ur编码,也就是网址转换的时候的编码。在上网的时候,经常可以看到这样的编码,是浏览器用来打包表格输入的一种格式,这种情形在用搜索引擎搜东西的时候最常见,搜索的内容通常都会转换成这种形式呈现在浏览器的地址栏中至于为什么要这样以后再解释。
ur编码其实就是字符ascii码美国国家信息交换标准代码的十六进制,不过稍微有些变动,需要在前面加上“”。比如反斜杠“”,它的ascii码是92,而92的十六进制是5c,所以它的ur编码就是5c汉字的编码也是同样的原理,如“胡”的ascii码是17670,十六进制码是bafa,则它的ur编码是“bafa”,由于一个汉字占两个字节,所以中间多了个“”。
平时通常用不上ur编码,因为ie会自动将输入到地址栏的非数字字母转换为ur编码,只有程序员在编写某些相关功能的程序的时候才需要用到其中的原理,当然,身为一个黑客,这个编码是需要掌握的,有些入侵行为就需要用到这个知识如:sq注入。
这点小知识许毅早就掌握得滚瓜烂熟,他干脆调出编译器,当场编写了一个ur编码转换器,反正知道原理,编写起来不用花多少时间,而且,以后也用得上。
将那段编码复制到自己刚刚编写的小程序中,转换成了几个汉字:“恭喜过关本关密码是e2”。
许毅微笑起来,虽然题目没什么难度,但这样过关的感觉还是不错,第二关的难度明显比第一关要大上很多,估计会难倒一片菜鸟。第三关的难度怎样呢许毅还真有点期待了,希望能够让自己头痛一下,最近正在研究密码学呢。
填入第二关的密码,顺利进入第三关。步骤有些大同小异,还是得查看源代码,不过这次的源代码看上去比较混乱,不像前两关那样,一眼看去,就能发现密码大概在某个部位。第三关的页面里面有很多用来干扰的代码,主要是一些脚本代码。这就要求闯关者对网页编程比较熟悉,能够读懂这些代码,至少应该知道那些代码应该会完成哪些功能,哪些代码有用,而哪些代码只是起干扰作用。
许毅很快找到了目标,在验证的时候出现了一段密文,许毅一看,知道用的是jscritende加密,只要用相应的解密功能就能搞定,这对别人来说也许是个难题,但许毅自然能够轻易搞定,他很顺利地进入第四关,他想看看到底有多少关,并且想早一点看到最后一关。
资料收集于网上,版权归原作者所有
本书由“tjian”免费制作
使用键盘左右键翻页,回车键回目录
第二卷第69章 破解游戏下
进入第四关,许毅找了老半天,实在是没找到哪个地方是突破口,源代码是检查了一遍又一遍,正怀疑线索可能并不在源代码中的时候,他终于发现了奇怪之处。
在源代码中有这么一句:
tscrit src“javascrit”gttscritgt
疑点就在这里了,这段代码看上去好像没什么问题,可是却没什么具体的作用。通常情况下,脚本代码都是夹在tscritgt和tscritgt之间的,但这个其中却没有任何代码。这还不是主要的,关键在于,如果网页脚本语言要使用javascrit语言的话,正确格式应该为:
tscrit nguage“javascrit”gttscritgt
或者,将脚本独立出来,直接放到另外一个文件中,然后进行引用。则语法为:
tscrit src“文件名”gttscritgt
也就是说,上面那个是引用了一个文件了,而文件名正好是javascrit,出题者这么出,正好是利用它们之间的相似之处,如果对这两个概念不清楚,还真不能发现其中的疑点,当然,这么一句无关紧要的代码隐藏在大量代码中,如果不细心也是发现不了的。
许毅按照上面的地址,将那个文件打开,果然里面有东西,准确的说里面是一句密文,许毅知道自己找对了。