我就太逊了!」
云飞说:「这些都可以教你!那,你想要从那里取得她的数据?」
天玄打开一个网站说:「就是这个游戏网站,我们就是在这认识的,她叫iccred。」
云飞看了看说:「这看起来满像轰炸超人的...你很强吗?」
天玄拍胸脯保证:「当然强罗!每次本天玄大爷出马,一堆人就过来围观呢!」
云飞一边试著输入 SQL 隐码一边说:「哼,他们是来看你怎么输的吧!」
天玄怒道:「喂,你这什么意思?你看,我一上线就一堆人抢著要跟我联机。」
云飞进入数据库画面并回道:「是因为找你洗胜率很方便吧。」
天玄愤怒的说:「喂,你这小子,不要太过份了!」
此时云飞已经抓好数据了,指著屏幕,让天玄只得『气得向他道谢』。
宇成看著屏幕问:「云飞,这就是所谓的 SQL 隐码攻击?」
云飞点头说:「是的,没有错!所谓的 SQL 隐码便是利用程式写作和语法上的漏洞造成的意外结果。通常利用这种办法,可以创造出意想不到的效果!我以前和你说过,利用网页的参数传入非预期的值不算什么,而再上去,则是要懂得将对方主机的数据给取出来。」
宇成点头说:「嗯、嗯、我记得!前者的手法就像天玄一样,而后者的手法则和明昂一样厉害!」
天玄听了气得问:「喂!这是什么意思?为什么要把我和那混蛋扯在一起?」
云飞不理会天玄的愤怒继续说:「而 SQL 隐码则是利用前者达到后者的技术!」
宇成听了问:「这又是非正规技术吗?」
云飞点头说:「没有错!因为是在正常手法之外的方式,所以是非正规技术!」
天玄大喊一声:「啊!!!!!」
宇成吓了一跳捂住耳朵骂道:「天玄,你没事喊那么大声做什么?」
天玄生气的说:「你们在那里讲些什么啦!我完全不懂啊!」
云飞用轻蔑的语气说:「小子,你不是想要学习技术吗?那就给我仔细的听啊!」
天玄暂时平息怒气道:「好吧!那你说,什么利用前者达到后者的是啥意思。」
云飞指著屏幕说:「你们看,我在用户名密码的框框里输入的不是正确的数据吧!」
宇成和天玄转头看著屏幕说:「嗯,这看起来很像是逻辑判断式嘛!」
云飞又打开一个网页说:「再看这个!这是一个网页利用表单元件将输入的数据传送到后端主机处理的范例,他会收集这两个 input type 为 text 的输入项,然后透过 form action 指定的路径传递参数。」
宇成点头表示明白这些,但天玄却仍不是很懂,这对他而言还是有点困难的。
云飞切换页面,换到传递参数到该路径的处理页面检视原始码说:「你们看,在这里有一些 if 判断式,它会判断这个用户名与密码是否符合管理者要素!其中一个变量 rootid'result1' 是利用回圈从数据库中读取每一笔用户名数据出来判断,当判断通过后再进入第二个判断式回圈读取数据库中的密码判断是否正确。」
天玄举手说:「等一等!如果是这样的话,输入那些逻辑判断怎么会通过?」
云飞问:「你看看 or 1 = 1 的结果应该是 true 或 false?」
天玄说:「喂,太瞧不起我了吧?谁都知道 1 = 1 啊!这结果当然是 true!」
云飞点头说:「看来你还有点救!接下来,在判断式中假设用户名为 paul 而密码为 qq 则判断式的成立应该是当 if用户名 == ‘paul‘ 以及 if 密码 == ‘qq‘ 对吧?因为在 SQL 语法中单引号内括字元字串。」
天玄开始了解而说:「这样讲我当然明白!可是和 or 1=1 又有何关联?」
云飞便说:「你看!假如我们输入 if 用户名 == ‘paul‘ 这里改成 if 用户名 == ‘xxx‘ 本来应该是错误的,因为没有 xxx 这个用户名在!可是若输入 ‘ or 1=1‘ 变成if 用户名 == ‘xxx‘ or 1 = 1‘‘时,因为有一个『或』运算 or 在,就算没有用户名,但判断到『或1=1』时却会通过!我们知道 AND 要两者都成立,而 or 只要其中一个成立,所以在某些情况下会通过检查。而若反过来输入数据被放在 == 之前则可以输入 1=1 or来变成 if 1=1 or ‘xxx‘ == ‘paul‘,同样判断到1=1就会通过了。」
天玄拍手(炫)恍(书)然(网)大悟道:「天呀!真是高招!我终于开窍了!」
宇成也了解道:「原来如此,这就是所谓的 SQL 隐码啊!果然很危 3ǔωω。cōm险!」
云飞却摇摇头说:「不然,这并非是绝对的好方法!这次之所以能成功,是因为写这个网页的人疏忽漏掉很多东西,比如过滤掉单引号!如果对方的程式写了过滤单引号的程式加以检查,这方法就不会成功了。而且,刚刚所讲的只是基本的理论,实际使用上要视不同网页程式写法,尝试各种 SQL 语法。」
天玄拼命点头说:「是!是!好,这样我就知道要怎么跟小红说了!」
云飞转头看著宇成说:「怎么样?你还是对这些东西很有兴趣,对吧?」
宇成不愿正面回答,便说:「我只是想到『信息安全』的重要性罢了!毕竟,如果这么简单就可以攻击的话,那我们的数据存在网路上一点也不安全!」
天玄被激励而说:「宇成,你在胡说什么啊?网路本来就是一个公开的地方,既然有心要把数据放在上面,当然就没有绝对的安全啊!所以被入侵,是自己的防护不够周全的关系。你想想,不锁好门而被偷东西,该怪谁?」
宇成心中突然又闪过一道光,心想:「是这样子吗?没有锁好门的人也有错吗?」
云飞喝了口水说:「那么,接下来是编码的问题吧?」
天玄又拼命点头的说:「对,拜托你了,云飞大大,不,超级大大大!」
云飞说:「你听好了,所谓的编码就是将数据编辑成一连串的二进位码,而加密则是不以直接的方式解码,必需要用特殊的规则或演算法去解出来。」
天玄点点头说:「喔~是这样子啊?不过我还是不懂,可以说得更俱体一点吗?」
云飞便在屏幕上打了几个字:B746、A741、A6D1、A5C0。
天玄疑惑的问:「这个...这个是什么意思啊?」
云飞邪笑著说:「你用『内码输入法』在姓名栏输入那四组字码就知道了,哼!」
天玄好奇的打上去,却发现是一句不勘入目的话,甚是生气的说:「太过份啦!」
宇成捧腹大笑道:「哈哈哈!天玄..噗..被摆了一道喔!」
云飞转身打字说:「好了,没时间让你当小丑了,得快点让你明白才可以。」
天玄气愤的骂道:「喂!这到底是谁造成的啊?」
云飞说:「你看,以B746这个字码为例,解析成二进位后会变什么?」
天玄拿出笔算后说:「是 1011 0111 0100 0110 啊!」
云飞便说:「假如我们把它的编码往左移两位,就成了 1101 1101 0001 1010 对吧?最左边的两位 10 因为左移所以会跑到最右边去。此时再组合回十六进位就会变成 DD1A 这个码,和原先的 B746 不同了对吧?但只要右移又恢复了!」
天玄点头说:「我懂了,我懂了!只要事先制定一套规则演算法,就可以让字码在网路上传递时属于被修改过的方式,保护数据传递中的安全性。而收到的人如果不懂得演算规则,他就没有办法还原回原来的数据了!」
云飞又说:「但是只有简单的位移,还是容易被看出来。所以,演算的方式往往要依赖一些公式去计算!B746二进位码中有1的位元是15;13;12;10;9;8;6;2;1。」(二进位码的位元位置编号为15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;0)
云飞换个画面接著说:「假如不在乎文件大小,可以编码成9FDCA98621,其中前面的9代表读取下面几组位元,而FDCA98621代表第几个位元为1。因为是9,所以会读取九组二进码,从F一直读到1为止,在1的后面一个码则是代表下一个字由几组码构成。当然,因为开头的9可以知道后面九个码都代表同一个字码的第几个位元为1,所以就算不按顺序,乱数排成9C89A6DF12也无所谓,还原计算回来后都一样代表15;13;12;10;9;8;6;2;1位元为1,更能保障安全。」
云飞又说:「利用演算的方式,也可以抽出 BIG…5 码的四个十六进位数字单独做加减,比如 B746 用 B+1、7…1、4+2、6…2的方式编码成C664,等到要解码时再重新加减回去变C…1、6+1、6…2、4+2还原回B746。」
天玄又问:「如果这样做的话,那恰好被猜出几个字来,不就可以全部解出来了?」
云飞冷笑道:「你以为编码的人会这么笨吗?多重编码方式,每个字可以用不同的编码规则,然后以文件档头的隐藏位元做运算式。配合不同的排列规则,往往直接解是解不出什么东西来的。不过这些还算是下乘的东西,真正上乘的....」
此时,云飞的计算机上闪起新邮件讯息,云飞便先打开看。附加档是一个加密演算过后的文字档,是明昂传给他的私密讯息,便邪笑道:「编码的活教材进来了!」
不知道这封讯息里面是什么?...待续
第五卷 满月之战篇 第一百二十六章 沉重的空气
(更新时间:2005…2…21 16:39:00 本章字数:3743)
邮件上写著:「虽然这是一封重要的讯息,但请用我们之前约定的规则想办法写程式解开来读取。如果无法解出来,就按照既定约定去,他会告诉你们的。」
云飞转头问宇成:「我们有和明昂约定什么吗?」
宇成想了想后说:「嗯...我想不出来?到底是什么?『他』又是指谁?」
云飞说:「算了,就把它解出来我们就知道了。」
天玄起身说:「先等一等,云飞,这样下去我完全无法确定我会不会。这样吧!这次这个加密档,你告诉我解密的方式,除非我亲自做一遍,不然我无法确定!」
云飞点头说:「好吧,我把那规则告诉你。」(似乎忘记这是重要的讯息...?)
云飞打开数据夹并找到该规则说明文件档说:「我们定义了四种字码加密方式,还有四种组合运用加密方式的规则,利用加密档每段第一个 byte 做为定义,假如值是84代表1000 0100,就是用第一种加密方式与第二种组合规则。」
天玄从 UltraEdit 中看到第一段第一个字元值为 28 00 便说:「这代表0010 1000 第三种加密和第一种组合规则没有错吧?第二个00应该不用管它吧?」
云飞点头说:「对,00是补成双位元!现在我把公式给你!在这种加密方式中,字码的四个十六进位档,第一个加1、第二个加3、第三个加2、第四个加4,以 B746 来讲就会变成 B+1=C、7+3=A、4+2=6、6+2=8,所以还原字码的时候便是把那些码都相减回去就可以了。如果碰到0…1的话就代表F,倒退回去就对了。」
天玄点头开始拼命的做,花了许久时间终于解出全部的字了。
云飞说:「好,再来是规则!在这一种组合规则里,每段,也就是八个字为一组,15对调,28对调,36对调,47对调。所以现在按照这个规则,每八个字为一组重新将它排列出来,就还原回原本的档案了。」
天玄挽起袖子说:「没问题,这可比刚才那个要简单多了,看我的!」
天玄把短短的一百多个字的讯息排列完成,而云飞和宇成看了却大吃一惊!
宇成荒道:「糟了!和庄胜哲大哥约好要去的,现在已经这么晚了!」
云飞赶紧准备要用的东西说:「明昂因为有事所以比较晚到,总不能比他还晚吧?要是比明昂晚,那可糗大了,到时被他笑我们不懂得解码才花那么多时间!」
..................................
在台北极光里,任逍遥对路心怡说:「这是我们在巴塞隆纳和马赛的盟友传过来的数据,可以请你翻译一下吗?你加入极光的数据里写对西班牙文和法文OK。」
路心怡说:「没有问题,我很快会翻译好的。对了会长,这个是日本的自由骇客仙道勇作先生传过来的报告,已经翻译完成了,西伯利亚和MSOG的部分都有。」
任逍遥看了看说:「好,谢谢你,先出去吧。」
路心怡出去后,正好见到刘明昂,便低著头害羞问:「你..最近还是很忙吗?」
明昂说:「如果你是想约我出去,很抱歉,我对女人没兴趣,玩完就丢了。」
路心怡说:「就算你只是玩我,我也不在乎。」
明昂冷眼说道:「但是我在乎,因为我连玩的兴趣都没有,你了解吗?」
路心怡痴痴的望著明昂离开,而明昂也走到庄胜哲的研究室里去。在研究室里,宇成和云飞才刚飞车赶到,与郑旬昌都和庄胜哲会话著有关信息战的事。
明昂推开门便问:「各位,现在高丽骇客和日本MSOG怎么样了?」
宇成说:「MSOG不知道是渐渐疲累还是分裂了,攻击若有似无。」
庄胜哲说:「我从会长那里有听到消息,似乎有越来越多的骇客与MSOG作对。」
云飞看著郑旬昌问:「你怎么到现在才知道我们作战的事?」
郑旬昌重重拍桌怒道:「这我才要生气呢!为什么一开始作战你们都不告诉我?」
庄胜哲笑说:「那时候你要期中考,大家见你那么用功,就没说了嘛。」
郑旬昌气呼呼的说:「用功用功,整天用功,也不知道到底是为什么。」
庄胜哲忽然转头说:「如果你真这么讨厌念书,我劝你还是及时行乐比较好。」
郑旬昌说:「我也想啊!但是,我妈妈老是念念念不停,我也想出去玩,想要交女朋友,想要做自己要做的事,但是她老是不准,说什么以后赚大钱自然会有时间和金钱去玩,自然会有女人找上门。可恶,难道爱情是用钱换来的吗?」
宇成想了想说:「听你这么一说,似乎我们的长辈观念的确很奇怪。」
云飞则说:「哼,不关我的事,女人和爱情对我而言根本不重要。」
明昂也说:「没错,浪费时间在女人和爱情