• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Web應(yīng)用的SQL注入攻擊和防御技術(shù)研究

      2020-12-16 04:15:44韓繼英山西職業(yè)技術(shù)學(xué)院山西太原030006
      建材技術(shù)與應(yīng)用 2020年6期
      關(guān)鍵詞:黑客漏洞語(yǔ)句

      □□ 韓繼英 (山西職業(yè)技術(shù)學(xué)院,山西 太原 030006)

      引言

      近年來(lái),隨著網(wǎng)絡(luò)信息技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)應(yīng)用程序的風(fēng)險(xiǎn)越來(lái)越大。在OWASP項(xiàng)目中,SQL注入攻擊在十大網(wǎng)絡(luò)應(yīng)用程序中位于風(fēng)險(xiǎn)榜榜首,成為網(wǎng)絡(luò)安全領(lǐng)域的重點(diǎn)工作之一。2014年美國(guó)海軍的一個(gè)Web應(yīng)用程序“Smart Web Move”遭到了黑客組織“TeamDigi7al”的攻擊,造成22萬(wàn)名美國(guó)海軍服役人員的信息泄露。之后,美軍花費(fèi)了50多萬(wàn)美元來(lái)處理此次數(shù)據(jù)泄露事件。同年,在日本NTT集團(tuán)全球威脅情報(bào)報(bào)告中指出,企業(yè)在處理小規(guī)模SQL注入攻擊事故時(shí),平均每次善后的花費(fèi)為19.6萬(wàn)余美元。由此可見(jiàn),SQL注入是不容忽視的。

      目前,Web的應(yīng)用越來(lái)越多,而大部分Web應(yīng)用程序會(huì)收集大量的用戶信息,也就成為了黑客攻擊的對(duì)象。而SQL注入是一種簡(jiǎn)單而又高效的攻擊手段,是攻擊者的不二選擇。因此,SQL注入攻擊的防御與研究是非常有必要的。

      1 SQL注入攻擊

      1.1 SQL注入的定義

      所謂SQL注入是在用戶輸入數(shù)據(jù)時(shí),Web應(yīng)用程序?qū)ζ浜戏ㄐ晕催M(jìn)行判斷或是過(guò)濾不夠嚴(yán)格,黑客可在事先定義好的Web應(yīng)用程序查詢語(yǔ)句末尾添上具有攻擊意圖的SQL語(yǔ)句,從而對(duì)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行未授權(quán)的任意非法查詢,從而得到想要的數(shù)據(jù)信息。

      1.2 SQL注入的操作過(guò)程

      SQL注入的操作過(guò)程如圖1所示。

      圖1 SQL注入的操作過(guò)程

      SQL注入操作過(guò)程中,首先是進(jìn)行注入點(diǎn)探測(cè),通過(guò)一些應(yīng)用程序進(jìn)行恰當(dāng)?shù)胤治觯袛嗍欠翊嬖谧⑷朦c(diǎn)或者注入點(diǎn)存在的具體位置,由于在不同的數(shù)據(jù)庫(kù)中,SQL注入的方法和函數(shù)都不一樣,所以需要采用不同的判斷方法來(lái)確定數(shù)據(jù)庫(kù)的類型,從而確定注入的方式。每一個(gè)數(shù)據(jù)庫(kù)中的表名和字段名具有一定規(guī)律,可以通過(guò)特殊SQL查詢語(yǔ)句破譯數(shù)據(jù)庫(kù)中的賬戶和密碼,接下來(lái)通過(guò)AWVS或者WWWSCAN等Web目錄掃描工具進(jìn)行快速搜索,查找Web后臺(tái)管理的登錄入口。最后,利用已經(jīng)破譯的賬戶和密碼登錄Web后臺(tái)管理平臺(tái),入侵服務(wù)器,進(jìn)行肆意破壞或信息提取。

      1.3 SQL注入的常用攻擊方法

      1.3.1 基于布爾、時(shí)間或條件的盲注式攻擊

      在開(kāi)發(fā)人員將返回的一些錯(cuò)誤信息全部過(guò)濾的前提下,黑客可以構(gòu)造一些不同的參數(shù),依據(jù)Web頁(yè)面返回布爾值(False或True),即頁(yè)面是否能夠正常顯示,來(lái)獲取數(shù)據(jù)庫(kù)信息,判斷是否存在注入點(diǎn)。

      基于布爾型的盲注若無(wú)結(jié)果的情況下,可依據(jù)頁(yè)面的響應(yīng)時(shí)間間隔來(lái)分析其SQL注入點(diǎn)的存在性,進(jìn)而確定是否可以注入攻擊。

      另外,可以通過(guò)構(gòu)造相互對(duì)立的條件語(yǔ)句來(lái)查看和比較系統(tǒng)在對(duì)立條件下的反應(yīng),從而獲取系統(tǒng)的的信息。

      如語(yǔ)句1:SELECT money FROM Finanial WHERE department=‘B’ and 1=0—‘,

      語(yǔ)句2:SELECT money FROM Finanial WHERE department=‘B’ and 1=1—‘,

      當(dāng)提交語(yǔ)句1時(shí),Web應(yīng)用程序會(huì)報(bào)錯(cuò),但不能確定是由于應(yīng)用程序在驗(yàn)證輸入后阻止了此次攻擊,還是由于1=0這個(gè)條件導(dǎo)致的錯(cuò)誤。提交語(yǔ)句2后,因?yàn)檫@個(gè)條件1=1是永遠(yuǎn)為真的,若沒(méi)有出現(xiàn)錯(cuò)誤信息,說(shuō)明應(yīng)用程序沒(méi)有阻止攻擊,是存在注入的。

      1.3.2 插入注釋符的注入攻擊

      在用戶輸入插入注釋符后,一些必要的查詢條件就會(huì)被過(guò)濾,使數(shù)據(jù)引擎不能執(zhí)行,從而使查詢語(yǔ)句在沒(méi)有該部分查詢條件的情況下,能夠返回正常的值。

      1.3.3 邏輯錯(cuò)誤查詢式注入攻擊

      黑客可以向系統(tǒng)提交不正確的SQL語(yǔ)句,雖然該語(yǔ)句不會(huì)被執(zhí)行,但數(shù)據(jù)庫(kù)的相關(guān)信息,比如類型、版本及參數(shù)等基本信息就會(huì)出現(xiàn)在返回的提示信息中,從而得到系統(tǒng)的內(nèi)部信息。

      1.3.4 基于聯(lián)合查詢的注入攻擊

      在某些數(shù)據(jù)庫(kù)中,攻擊者能夠在原語(yǔ)句后面加上新的目標(biāo)語(yǔ)句,以便對(duì)數(shù)據(jù)進(jìn)行查詢、更改等操作。在確定要注入頁(yè)面有顯示位的前提下,使用union將多個(gè)select查詢語(yǔ)句的結(jié)果集進(jìn)行合并,從而得到更多的額外信息。

      1.3.5 基于存儲(chǔ)過(guò)程的注入攻擊

      倘若數(shù)據(jù)庫(kù)的默認(rèn)存儲(chǔ)過(guò)程被開(kāi)啟了,由于存儲(chǔ)過(guò)程中包含參數(shù),黑客就能夠利用存儲(chǔ)過(guò)程實(shí)現(xiàn)注入攻擊。

      2 SQL注入攻擊的防御

      2.1 過(guò)濾并驗(yàn)證用戶輸入

      用戶輸入在SQL注入攻擊中起著關(guān)鍵作用。要防御SQL注入攻擊,必須對(duì)用戶的輸入進(jìn)行過(guò)濾,不允許將用戶輸入信息嵌入到SQL語(yǔ)句中,可以通過(guò)參數(shù)化語(yǔ)句來(lái)使用參數(shù),從而修正SQL語(yǔ)句。在系統(tǒng)安全模塊的設(shè)計(jì)中,可采用一些手段來(lái)驗(yàn)證用戶輸入,如黑/白名單機(jī)制。通過(guò)黑名單可以拒絕接受用戶輸入某些危險(xiǎn)字符,而白名單則可以接受某些特定類型的用戶輸入。通過(guò)對(duì)用戶輸入的合法性進(jìn)行檢查,可以確保用戶輸入的內(nèi)容中只有合法數(shù)據(jù)。但數(shù)據(jù)檢查必須在客戶端和服務(wù)器端都要執(zhí)行,否則,若黑客在客戶端獲取了網(wǎng)頁(yè)的源代碼,就可以對(duì)驗(yàn)證腳本進(jìn)行修改或刪除,然后再通過(guò)更改后的表單,將非法輸入內(nèi)容提交到服務(wù)器,所以在服務(wù)器端也必須進(jìn)行驗(yàn)證。

      2.2 利用存儲(chǔ)過(guò)程執(zhí)行所有查詢

      利用參數(shù)傳遞方式可以有效預(yù)防黑客利用連字符或單引號(hào)進(jìn)行SQL注入攻擊。另外,可以確保只有特定的存儲(chǔ)過(guò)程能夠擁有執(zhí)行數(shù)據(jù)庫(kù)的權(quán)限。每個(gè)用戶輸入都必須遵照被調(diào)用存儲(chǔ)過(guò)程的上下文,這樣存儲(chǔ)過(guò)程可以有效防御SQL的注入攻擊。

      2.3 安全配置數(shù)據(jù)庫(kù)服務(wù)器

      首先,對(duì)數(shù)據(jù)庫(kù)的登錄賬戶和密碼進(jìn)行設(shè)置,以防惡意用戶進(jìn)行非法遠(yuǎn)程登錄。另外,應(yīng)為不同的用戶分配不同的權(quán)限,在正常情況下,用戶只能在自己權(quán)限范圍內(nèi)對(duì)數(shù)據(jù)進(jìn)行操作;當(dāng)遇到特殊情況需要越級(jí)操作時(shí),可設(shè)置觸發(fā)器,進(jìn)行及時(shí)反饋,檢測(cè)是否存在注入攻擊。

      其次,數(shù)據(jù)庫(kù)的連接方式需要慎重考慮的。如數(shù)據(jù)庫(kù)是用網(wǎng)絡(luò)來(lái)連接的,就更方便黑客入侵。所以,必須在服務(wù)器端對(duì)數(shù)據(jù)庫(kù)只允許本地連接,但還要實(shí)現(xiàn)網(wǎng)絡(luò)連接功能。解決該問(wèn)題需要增加數(shù)據(jù)訪問(wèn)層。把數(shù)據(jù)訪問(wèn)層作為數(shù)據(jù)庫(kù)與應(yīng)用程序服務(wù)器的橋梁進(jìn)行數(shù)據(jù)傳輸。在數(shù)據(jù)傳輸過(guò)程中,網(wǎng)絡(luò)用戶使用的數(shù)據(jù)先傳輸?shù)綌?shù)據(jù)訪問(wèn)層,訪問(wèn)層處理后再轉(zhuǎn)到數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)庫(kù)操作,并將操作結(jié)果傳到數(shù)據(jù)訪問(wèn)層,訪問(wèn)層最終將數(shù)據(jù)再傳到服務(wù)器。采用這種方式,可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的有效保護(hù)。

      再次,加強(qiáng)數(shù)據(jù)庫(kù)的日志管理,提高日志記錄的級(jí)別,采用獨(dú)立的物理磁盤來(lái)保存日志記錄,并定期檢查,時(shí)刻關(guān)注Web應(yīng)用程序的運(yùn)行狀況,若發(fā)現(xiàn)短時(shí)間內(nèi)頁(yè)面被密集訪問(wèn),數(shù)據(jù)庫(kù)中數(shù)據(jù)信息遭篡改或有可疑的臨時(shí)存儲(chǔ)文件時(shí),說(shuō)明Web應(yīng)用程序可能受到了SQL注入攻擊,應(yīng)及時(shí)處理。

      另外,通過(guò)對(duì)數(shù)據(jù)進(jìn)行加密存儲(chǔ)或加載Web防火墻來(lái)加強(qiáng)安全管理、防御注入攻擊。

      2.4 利用專業(yè)漏洞掃描工具

      目前,黑客能夠利用某些專業(yè)軟件對(duì)攻擊目標(biāo)進(jìn)行自動(dòng)搜索,并將搜索結(jié)果輕松應(yīng)用到其他Web架構(gòu)中,隨時(shí)發(fā)現(xiàn)系統(tǒng)中的漏洞,然后進(jìn)行注入攻擊。因此,為了確保Web應(yīng)用程序安全運(yùn)行,企業(yè)應(yīng)配置部分專業(yè)漏洞掃描工具,如目前流行的Acunetix的Web網(wǎng)絡(luò)漏洞掃描工具,可以通過(guò)網(wǎng)絡(luò)爬蟲(chóng)來(lái)測(cè)試網(wǎng)站安全,查找安全漏洞,完善相應(yīng)的Web應(yīng)用程序。一個(gè)完善的、可靠的漏洞掃描程序會(huì)專門檢測(cè)網(wǎng)站上SQL注入漏洞。漏洞掃描程序需要不斷更新,新的漏洞需要新的掃描程序去查找。這樣在系統(tǒng)正式使用之前就可以查找到系統(tǒng)漏洞,然后進(jìn)行修復(fù)和完善,從而有效地防御注入攻擊,提高系統(tǒng)的安全性。

      3 結(jié)語(yǔ)

      隨著當(dāng)前Web應(yīng)用的快速發(fā)展,數(shù)據(jù)庫(kù)的安全性越來(lái)越重要。SQL注入攻擊有很多應(yīng)用工具,操作過(guò)程簡(jiǎn)單方便,不需要掌握太多的專業(yè)知識(shí)。注入語(yǔ)句通常都會(huì)嵌入到HTTP請(qǐng)求中,而且變種很多,隱蔽性極高。在注入后,可以獲取到數(shù)據(jù)庫(kù)的名稱、數(shù)據(jù)表名以及字段名,甚至整個(gè)服務(wù)器的所有數(shù)據(jù),對(duì)用戶的信息安全存在極大威脅。所以,SQL注入是目前應(yīng)用系統(tǒng)所面臨的首要安全威脅。SQL注入能夠躲過(guò)殺毒軟件查殺,若不進(jìn)行防御,SQL注入會(huì)竊取或篡改相關(guān)數(shù)據(jù),因而必須進(jìn)行有效防御,系統(tǒng)的安全性也必須增強(qiáng)。

      猜你喜歡
      黑客漏洞語(yǔ)句
      漏洞
      歡樂(lè)英雄
      多少個(gè)屁能把布克崩起來(lái)?
      重點(diǎn):語(yǔ)句銜接
      網(wǎng)絡(luò)黑客比核武器更可怕
      精彩語(yǔ)句
      三明:“兩票制”堵住加價(jià)漏洞
      漏洞在哪兒
      高鐵急救應(yīng)補(bǔ)齊三漏洞
      如何搞定語(yǔ)句銜接題
      利辛县| 清水县| 朝阳市| 高碑店市| 伊通| 正镶白旗| 建始县| 福州市| 平湖市| 清涧县| 兴城市| 宿州市| 陆丰市| 财经| 新绛县| 昌图县| 平罗县| 福建省| 灵寿县| 丰台区| 宜兰县| 台安县| 建昌县| 彭阳县| 绥阳县| 平乐县| 米脂县| 伊宁市| 永清县| 佛教| 贵港市| 商南县| 道孚县| 开远市| 盐山县| 栾川县| 宜阳县| 兴业县| 邻水| 横山县| 沾益县|