域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過
幾年前,SQL注入在世界范圍內(nèi)很流行,但現(xiàn)在,SQL注入仍然是最流行的攻擊方法之一,開發(fā)人員為此頭疼。當(dāng)然主要是因?yàn)樽⑷牍舻撵`活性,一個(gè)目的,多條語(yǔ)句,多種編寫方法。SQL注入可以分為工具和手工兩種。由于自動(dòng)化,工具通常比手動(dòng)注入效率高得多,但與手動(dòng)注入相比,它們受到限制,因?yàn)樗鼈儧]有針對(duì)性。
所有的輸入都可能是有害的,有參數(shù)的地方都可能存在SQL注入。但是由于瀏覽器的限制,http頭中的一些隱藏鏈接、API調(diào)用和參數(shù)往往被忽略。那么如何進(jìn)行全面的SQL注入挖掘呢?在滲透測(cè)試中,無(wú)論注入工具多么強(qiáng)大,都會(huì)有局限性,手動(dòng)注入可以解決這個(gè)弱點(diǎn)。當(dāng)然,手動(dòng)注入需要滲透者對(duì)數(shù)據(jù)庫(kù)的語(yǔ)法有一定的了解。但是由于SQL注入的靈活性和多樣性,如果詳細(xì)討論的話,恐怕可以寫成單本書了。在這里,作者將選擇最具代表性的例子進(jìn)行論證。
注入遇到的一個(gè)常見情況是注入得到的加密密文無(wú)法求解。為了解決這個(gè)問題,這里解釋幾種可行的方法。(1)使用國(guó)外的搜索引擎,往往會(huì)有意想不到的收獲,最常見的是Google。(2)用Whois查出管理員郵箱,然后發(fā)郵件通知管理員更改密碼。郵件內(nèi)容無(wú)非是“我們是XXX檢測(cè)中心,你的網(wǎng)站有風(fēng)險(xiǎn)。請(qǐng)立即更改管理員密碼……”。(3)分析Cookie。有時(shí)加密的密文會(huì)出現(xiàn)在cookies中。這種情況下,cookies中的密文可以直接被管理員的密文替換。(4)在特定的注入環(huán)境中,原始密文有時(shí)可以被新密文替換。當(dāng)然這種方法的執(zhí)行條件比較苛刻,實(shí)踐中很少遇到。(5)使用密碼檢索功能。使用秘密安全問題來(lái)檢索密碼是很常見的。在這種情況下,可以注入秘密安全問題的答案,然后使用密碼檢索功能成功登錄目標(biāo)帳戶。(6)邏輯缺陷。比如一些登錄功能、修改功能、密碼檢索功能等都是以密文的形式直接在數(shù)據(jù)包中傳輸?shù)?。這時(shí)可以用密文代替,這樣就可以登錄并更改密碼了。
如何防護(hù)SQL注入攻擊呢?
1.對(duì)代碼進(jìn)行過濾非法符號(hào)如之類的,對(duì)一些腳本標(biāo)簽scrpt以及img或frame都進(jìn)行過濾和替換。
2.對(duì)一些函數(shù)變量直接進(jìn)行強(qiáng)制定義,比如金額函數(shù)這里直接限定只能寫入正整數(shù)類型的數(shù)值,那么其他的參數(shù)像姓名的話可以直接限定到只允許寫入中文和英文的數(shù)值,其他的以此類推。
3.對(duì)一些帶入數(shù)據(jù)庫(kù)查詢和更新的語(yǔ)句,一定要看看get或post過來(lái)的數(shù)據(jù)參數(shù)是否是直接把參數(shù)類型鎖定好了的,防止被注入惡意語(yǔ)句導(dǎo)致被攻擊。
4.如果對(duì)著代碼方面的問題不懂得話可以到網(wǎng)站安全公司去尋求幫助,國(guó)內(nèi)如SINESAFE,鷹盾安全,綠盟,啟明星辰等等。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!