• 
    

    
    

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

      ?

      SQL盲注攻擊與防范

      2018-09-10 01:52:50李鴻鵠王喆翟繼強
      計算機與網(wǎng)絡(luò) 2018年5期
      關(guān)鍵詞:防御數(shù)據(jù)庫

      李鴻鵠 王喆 翟繼強

      摘要:分析DVWA中存在SQL盲注漏洞的源碼,旨在能夠通過對現(xiàn)有攻擊方式的驗證下,提出對應(yīng)的防御措施,為開發(fā)人員提供參考。采用基于時間的盲注方法,并借助python腳本對存在漏洞的頁面進(jìn)行了仿真測試,成功利用該漏洞顯示出數(shù)據(jù)庫版本信息?,F(xiàn)階段對于存在數(shù)據(jù)庫操作的代碼,應(yīng)重視其安全性,針對安全和開發(fā)的平衡,經(jīng)過相應(yīng)的需求分析后,采取對應(yīng)的防御措施。

      關(guān)鍵詞:SQL注入攻擊;SQL盲注攻擊;數(shù)據(jù)庫;防御

      中圖分類號:TP391.4文獻(xiàn)標(biāo)志碼:A文章編號:1008-1739(2018)05-68-4

      Blind SQL Injection Attack and Defense

      LI Honghu, WANG Zhe, ZHAI Jiqiang(College of Computer Science and Technology, Harbin University of Science and Technology, Harbin Heilongjiang 150000, China)

      0引言

      Web發(fā)展的每一個階段都肩負(fù)著不同的使命,應(yīng)對著不同的挑戰(zhàn)。Web1.0時代主要注重的是內(nèi)容的展示,在安全方面的挑戰(zhàn)也僅僅是如何做好防止Webshell的上傳工作。隨著Web技術(shù)的發(fā)展與成熟,安全問題也成為其所要面對的巨大挑戰(zhàn)之一[1],SQL注入攻擊對于Web應(yīng)用而言,無論是從其攻擊的深度還是廣度來看,都是一種危害性極大的攻擊方式。

      SQL注入攻擊通過提交特殊值與數(shù)據(jù)庫進(jìn)行非法交互,當(dāng)代碼不夠健壯的時候,攻擊者可以通過相應(yīng)的SQL語句,任意對數(shù)據(jù)庫內(nèi)容進(jìn)行增刪改查,如果服務(wù)器權(quán)限設(shè)置不合理,就可以直接讀取主機文件。本文通過源碼分析和運用python腳本,闡述了SQL盲注注入[2]攻擊原理、詳細(xì)操作和防范方法。

      1 SQL盲注原理

      對于上一個代碼段來看,第二段代碼中多了一個@符號,這個符號的作用是將作用的php代碼產(chǎn)生的錯誤信息忽略掉,也就是說即使出現(xiàn)了錯誤,也不把錯誤信息顯示出來,從而無法獲取到服務(wù)器的錯誤信息,增加了攻擊的難度。

      2 SQL盲注注入流程

      2.1基于邏輯的判斷

      通過閉合參數(shù)邊界和添加邏輯判斷,查看頁面是否正常顯示。

      如果2次頁面返回結(jié)果不相同,則可能存在SQL注入漏洞。

      2.2基于時間的判斷

      基于時間的判斷是通過提交包含數(shù)據(jù)庫時延函數(shù)的代碼,讓數(shù)據(jù)庫在指定時間后返回結(jié)果,通過觀察前端頁面的加載速度,來判斷是否存在SQL注入。

      在User ID處提交1and (select*from(select(sleep(20)))a)--,提交后如果頁面返回出現(xiàn)20 s左右延遲,則說明可能存在SQL注入漏洞,需進(jìn)一步進(jìn)行測試。

      3基于時間的SQL盲注測試腳本編寫

      3.3腳本分析

      測試腳本只是簡單地對SQL盲注進(jìn)行了簡單的自動化測試,返回了數(shù)據(jù)庫的版本信息?;跁r間的腳本,主要是通過數(shù)據(jù)庫的時延函數(shù),使用like關(guān)鍵字,對構(gòu)造的payload與查詢信息進(jìn)行對比,如果為真,則調(diào)用時延函數(shù),數(shù)據(jù)庫延遲相應(yīng)的時間才會返回結(jié)果,進(jìn)而導(dǎo)致服務(wù)器返回響應(yīng)會出現(xiàn)時間延遲情況;如果不為真,則服務(wù)器響應(yīng)會立即返回。通過服務(wù)器返回響應(yīng)是否存在延遲現(xiàn)象,判斷構(gòu)造的payload是否正確。

      通過對查詢內(nèi)容的更改,可逐步獲取相應(yīng)的內(nèi)容,如把version()部分換成user(),可查詢到當(dāng)前數(shù)據(jù)庫的用戶信息。如果需要測試具體內(nèi)容,請更改cookies值和SQL檢測語句,可以得到具體的表和字段信息。

      4 SQL盲注防范

      4.1 WAF防火墻

      Web應(yīng)用防護(hù)系統(tǒng)[3](Web Application Firewall,WAF)工作在應(yīng)用層,對來自Web應(yīng)用程序客戶端的各種請求進(jìn)行內(nèi)容檢測和驗證,確保其安全性與合法性,對非法的請求予以實時阻斷。WAF的實現(xiàn)通常由配置、協(xié)議解析、規(guī)則、動作和錯誤處理5個模塊組成。通過提供代理服務(wù)、特征識別、算法識別及模式匹配等方式來進(jìn)行Web防護(hù)。

      4.2參數(shù)化查詢

      在使用參數(shù)化查詢[4]的情況下,數(shù)據(jù)庫在完成對SQL指令的預(yù)編譯后,才會傳入?yún)?shù)值,因此就算參數(shù)中含有惡意的指令,因為語法分析和預(yù)編譯已經(jīng)完成,所以客戶端提交的參數(shù)內(nèi)容不會被視為SQL指令的一部分,通過該方式可有效地防御SQL注入。經(jīng)驗證,對由客戶端提交的id值進(jìn)行了參數(shù)化處理的情況下,SQL注入攻擊無效。

      4.3對重要信息進(jìn)行加密

      盡管SQL注入防御技術(shù)在逐步地發(fā)展,且已經(jīng)有成熟的防范措施,對于程序員參差不齊的編程能力,難免Web應(yīng)用程序可能存在SQL注入漏洞。針對這種情況,可以對數(shù)據(jù)庫中重要的信息內(nèi)容進(jìn)行加密,可采用DES﹑RSA、AES及MD5等加密算法,進(jìn)行數(shù)據(jù)的加密,即使Web應(yīng)用程序存在SQL注入問題,攻擊者在獲取數(shù)據(jù)庫內(nèi)容的前提下,也無法猜解其相應(yīng)的明文內(nèi)容。

      4.4對提交參數(shù)進(jìn)行檢查

      SQL注入發(fā)生的主要原因是程序編寫者對于用戶的輸入沒有進(jìn)行驗證,未曾考慮其Web程序安全性問題,可以通過設(shè)置前端顯示所在字段的長度屬性,限制用戶的輸入長度,也可在后端對用戶的輸入?yún)?shù)中的敏感字符[5]進(jìn)行轉(zhuǎn)義或者過濾,對于已經(jīng)確定參數(shù)類型的輸入?yún)?shù),可限制其輸入的類型,如輸入?yún)?shù)為整型,則當(dāng)用戶輸入?yún)?shù)為非整型的時候,不允許用戶訪問。用戶的輸入驗證,可在一定程度上減少SQL注入攻擊的發(fā)生,但存在一定的局限性,可能存在規(guī)則被繞過的可能性。

      4.5屏蔽錯誤信息

      SQL注入攻擊可利用服務(wù)端回顯的錯誤信息,再結(jié)合數(shù)據(jù)庫相應(yīng)的報錯特點,通過報錯型注入方式,獲取數(shù)據(jù)庫相應(yīng)內(nèi)容,若數(shù)據(jù)庫權(quán)限設(shè)置不當(dāng),當(dāng)服務(wù)端報錯返回其絕對路徑后,可通過相應(yīng)的SQL語句,將一句話寫入到網(wǎng)站所在服務(wù)器,這樣會導(dǎo)致其服務(wù)器徹底淪陷。通過屏蔽其頁面和數(shù)據(jù)庫報錯信息,可以從一定程度上杜絕攻擊者通過錯誤回顯來進(jìn)行SQL注入,但不能從根本上防止SQL注入發(fā)生。

      5結(jié)束語

      SQL注入是目前針對于數(shù)據(jù)庫攻擊的主要方式,該方式通過惡意構(gòu)造SQL語句,并嵌入到相應(yīng)的注入點,通過該方式來獲取相應(yīng)的數(shù)據(jù)庫數(shù)據(jù),大多數(shù)的存在SQL注入的Web應(yīng)用程序,主要是程序員對傳入?yún)?shù)進(jìn)行了動態(tài)的拼接,導(dǎo)致攻擊者可以構(gòu)造其想要執(zhí)行的SQL語句,進(jìn)而發(fā)生數(shù)據(jù)泄露問題。本文通過講述SQL盲注原理、攻擊方式、注入流程和相應(yīng)python腳本的編寫,提出相應(yīng)的SQL注入防御策略,為SQL注入攻擊的安全防護(hù)工作提供有效的解決思路。

      參考文獻(xiàn)

      [1]韓宸望,林暉,黃川.基于SQL語法樹的SQL注入過濾方法研究[J].網(wǎng)絡(luò)與信息安全學(xué)報,2016,2(11):70-77.

      [2]趙宇飛,熊剛,賀龍濤,等.面向網(wǎng)絡(luò)環(huán)境的SQL注入行為檢測方法[J].通信學(xué)報,2016,37(2):89-98.

      [3]劉志光.Web應(yīng)用防火墻技術(shù)分析[J].情報探索,2014(3): 103-105.

      [4]李鑫,張維緯,隋子暢,等.新型SQL注入及其防御技術(shù)研究與分析[J].信息網(wǎng)絡(luò)安全,2016(2):66-73.

      [5]張慧琳,丁羽,張利華,等.基于敏感字符的SQL注入攻擊防御方法[J].計算機研究與發(fā)展,2016,53(10):2262-2276.

      [6]劉岳,盛杰,尹成語.Web應(yīng)用中SQL注入攻擊與防御策略研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017(4):109-111.

      猜你喜歡
      防御數(shù)據(jù)庫
      數(shù)據(jù)庫
      財經(jīng)(2017年15期)2017-07-03 22:40:49
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      數(shù)據(jù)挖掘在計算機網(wǎng)絡(luò)病毒防御中的應(yīng)用
      論校園無線局域網(wǎng)的攻擊與防御
      計算機網(wǎng)絡(luò)安全與防御研究
      計算機網(wǎng)絡(luò)安全與防御
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      芻議新局勢下計算機病毒防御技術(shù)
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      搜索| 溆浦县| 禄劝| 循化| 浠水县| 莱州市| 子长县| 曲靖市| 兴宁市| 宜春市| 个旧市| 平湖市| 广元市| 顺平县| 萝北县| 冷水江市| 西贡区| 靖江市| 巴里| 体育| 庄河市| 襄汾县| 南靖县| 长宁县| 都安| 砀山县| 崇州市| 治多县| 苍梧县| 云龙县| 武清区| 青神县| 秭归县| 封开县| 许昌市| 太和县| 泗阳县| 湖州市| 石棉县| 麻江县| 林州市|