重生小说网 > 科幻小说 > 极光骇客 > 第一百二十五章 隐码入侵与编码保护
    回到家后天玄既兴奋又期待的说:「来吧!来吧!」

    宇成说:「先不要急云飞过来帮忙吧!」

    云飞走过来问:「你想要学些什么?」

    天玄说:「其实小红很崇拜计算机强的人所以我想要窃取她的数据来证明。另外她还问我什么叫作加密编码如果我答不出来我就太逊了!」

    云飞说:「这些都可以教你!那你想要从那里取得她的数据?」

    天玄打开一个网站说:「就是这个游戏网站我们就是在这认识的她叫inetbsp;云飞看了看说:「这看起来满像轰炸人的...你很强吗?」

    天玄拍胸脯保证:「当然强罗!每次本天玄大爷出马一堆人就过来围观呢!」

    云飞一边试著输入sql隐码一边说:「哼他们是来看你怎么输的吧!」

    天玄怒道:「喂你这什么意思?你看我一上线就一堆人抢著要跟我联机。」

    云飞进入数据库画面并回道:「是因为找你洗胜率很方便吧。」

    天玄愤怒的说:「喂你这小子不要太过份了!」

    此时云飞已经抓好数据了指著屏幕让天玄只得『气得向他道谢』。

    宇成看著屏幕问:「云飞这就是所谓的sql隐码攻击?」

    云飞点头说:「是的没有错!所谓的sql隐码便是利用程式写作和语法上的漏洞造成的意外结果。通常利用这种办法可以创造出意想不到的效果!我以前和你说过利用网页的参数传入非预期的值不算什么而再上去则是要懂得将对方主机的数据给取出来。」

    宇成点头说:「嗯、嗯、我记得!前者的手法就像天玄一样而后者的手法则和明昂一样厉害!」

    天玄听了气得问:「喂!这是什么意思?为什么要把我和那混蛋扯在一起?」

    云飞不理会天玄的愤怒继续说:「而sql隐码则是利用前者达到后者的技术!」

    宇成听了问:「这又是非正规技术吗?」

    云飞点头说:「没有错!因为是在正常手法之外的方式所以是非正规技术!」

    天玄大喊一声:「啊!!!!!」

    宇成吓了一跳捂住耳朵骂道:「天玄你没事喊那么大声做什么?」

    天玄生气的说:「你们在那里讲些什么啦!我完全不懂啊!」

    云飞用轻蔑的语气说:「小子你不是想要学习技术吗?那就给我仔细的听啊!」

    天玄暂时平息怒气道:「好吧!那你说什么利用前者达到后者的是啥意思。」

    云飞指著屏幕说:「你们看我在用户名密码的框框里输入的不是正确的数据吧!」

    宇成和天玄转头看著屏幕说:「嗯这看起来很像是逻辑判断式嘛!」

    云飞又打开一个网页说:「再看这个!这是一个网页利用表单元件将输入的数据传送到后端主机处理的范例他会收集这两个inputtype为text的输入项然后透过formanet指定的路径传递参数。」

    宇成点头表示明白这些但天玄却仍不是很懂这对他而言还是有点困难的。

    云飞切换页面换到传递参数到该路径的处理页面检视原始码说:「你们看在这里有一些if判断式它会判断这个用户名与密码是否符合管理者要素!其中一个变量rootid[resu1t1]是利用回圈从数据库中读取每一笔用户名数据出来判断当判断通过后再进入第二个判断式回圈读取数据库中的密码判断是否正确。」

    天玄举手说:「等一等!如果是这样的话输入那些逻辑判断怎么会通过?」

    云飞问:「你看看or1=1的结果应该是true或fa1se?」

    天玄说:「喂太瞧不起我了吧?谁都知道1=1啊!这结果当然是true!」

    云飞点头说:「看来你还有点救!接下来在判断式中假设用户名为pau1而密码为qq则判断式的成立应该是当if用户名==‘pau1‘以及if密码==‘qq‘对吧?因为在sql语法中单引号内括字元字串。」

    天玄开始了解而说:「这样讲我当然明白!可是和or1=1又有何关联?」

    云飞便说:「你看!假如我们输入if用户名==‘pau1‘这里改成if用户名==‘xxx‘本来应该是错误的因为没有xxx这个用户名在!可是若输入‘or1=1‘变成if用户名==‘xxx‘or1=1‘‘时因为有一个『或』运算or在就算没有用户名但判断到『或1=1』时却会通过!我们知道and要两者都成立而or只要其中一个成立所以在某些情况下会通过检查。而若反过来输入数据被放在==之前则可以输入1=1or来变成if1=1or‘xxx‘==‘pau1‘同样判断到1=1就会通过了。」

    天玄拍手恍然大悟道:「天呀!真是高招!我终于开窍了!」

    宇成也了解道:「原来如此这就是所谓的sql隐码啊!果然很危险!」

    云飞却摇摇头说:「不然这并非是绝对的好方法!这次之所以能成功是因为写这个网页的人疏忽漏掉很多东西比如过滤掉单引号!如果对方的程式写了过滤单引号的程式加以检查这方法就不会成功了。而且刚刚所讲的只是基本的理论实际使用上要视不同网页程式写法尝试各种sql语法。」

    天玄拼命点头说:「是!是!好这样我就知道要怎么跟小红说了!」

    云飞转头看著宇成说:「怎么样?你还是对这些东西很有兴趣对吧?」

    宇成不愿正面回答便说:「我只是想到『信息安全』的重要性罢了!毕竟如果这么简单就可以攻击的话那我们的数据存在网路上一点也不安全!」

    天玄被激励而说:「宇成你在胡说什么啊?网路本来就是一个公开的地方既然有心要把数据放在上面当然就没有绝对的安全啊!所以被入侵是自己的防护不够周全的关系。你想想不锁好门而被偷东西该怪谁?」

    宇成心中突然又闪过一道光心想:「是这样子吗?没有锁好门的人也有错吗?」

    云飞喝了口水说:「那么接下来是编码的问题吧?」

    天玄又拼命点头的说:「对拜托你了云飞大大不级大大大!」

    云飞说:「你听好了所谓的编码就是将数据编辑成一连串的二进位码而加密则是不以直接的方式解码必需要用特殊的规则或演算法去解出来。」

    天玄点点头说:「喔~是这样子啊?不过我还是不懂可以说得更俱体一点吗?」

    云飞便在屏幕上打了几个字:b746、a741、a6d1、a5netbsp;天玄疑惑的问:「这个...这个是什么意思啊?」

    云飞邪笑著说:「你用『内码输入法』在姓名栏输入那四组字码就知道了哼!」

    天玄好奇的打上去却现是一句不勘入目的话甚是生气的说:「太过份啦!」

    宇成捧腹大笑道:「哈哈哈!天玄..噗..被摆了一道喔!」

    云飞转身打字说:「好了没时间让你当小丑了得快点让你明白才可以。」

    天玄气愤的骂道:「喂!这到底是谁造成的啊?」

    云飞说:「你看以b746这个字码为例解析成二进位后会变什么?」

    天玄拿出笔算后说:「是1o11o111o1ooo11o啊!」

    云飞便说:「假如我们把它的编码往左移两位就成了11o111o1ooo11o1o对吧?最左边的两位1o因为左移所以会跑到最右边去。此时再组合回十六进位就会变成dd1a这个码和原先的b746不同了对吧?但只要右移又恢复了!」

    天玄点头说:「我懂了我懂了!只要事先制定一套规则演算法就可以让字码在网路上传递时属于被修改过的方式保护数据传递中的安全性。而收到的人如果不懂得演算规则他就没有办法还原回原来的数据了!」

    云飞又说:「但是只有简单的位移还是容易被看出来。所以演算的方式往往要依赖一些公式去计算!b746二进位码中有1的位元是15,13,12,1o,9,8,6,2,1。」(二进位码的位元位置编号为15,14,13,12,11,1o,9,8,7,6,5,4,3,2,1,o)

    云飞换个画面接著说:「假如不在乎文件大小可以编码成9fdca98621其中前面的9代表读取下面几组位元而fdca98621代表第几个位元为1。因为是9所以会读取九组二进码从f一直读到1为止在1的后面一个码则是代表下一个字由几组码构成。当然因为开头的9可以知道后面九个码都代表同一个字码的第几个位元为1所以就算不按顺序乱数排成9c89a6df12也无所谓还原计算回来后都一样代表15,13,12,1o,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。」

    天玄又问:「如果这样做的话那恰好被猜出几个字来不就可以全部解出来了?」

    云飞冷笑道:「你以为编码的人会这么笨吗?多重编码方式每个字可以用不同的编码规则然后以文件档头的隐藏位元做运算式。配合不同的排列规则往往直接解是解不出什么东西来的。不过这些还算是下乘的东西真正上乘的....」

    此时云飞的计算机上闪起新邮件讯息云飞便先打开看。附加档是一个加密演算过后的文字档是明昂传给他的私密讯息便邪笑道:「编码的活教材进来了!」

    不知道这封讯息里面是什么?...待续