版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、SQL注入攻擊與防御技術(shù)白皮書關(guān)鍵詞:SQL注入,SQL語句,特征識別摘 要:SQL注入攻擊是一種比較常見的針對數(shù)據(jù)庫的漏洞攻擊方式。本文對該攻擊的原理和方式,結(jié)合示例進行了說明,并介紹了H3C安全產(chǎn)品對于此類漏洞的防御措施及策略??s略語:縮略語英文全名中文解釋SQLStructured Query Language結(jié)構(gòu)化查詢語言IPSIntrusion Prevention System入侵防護系統(tǒng)URLUniform Resource Locator統(tǒng)一資源定位符目 錄 HYPERLINK l _bookmark0 SQL注入攻擊簡介 HYPERLINK l _bookmark0 3 HY
2、PERLINK l _bookmark0 概述 HYPERLINK l _bookmark0 3 HYPERLINK l _bookmark0 技術(shù)原理 HYPERLINK l _bookmark0 3 HYPERLINK l _bookmark1 簡單的示例 HYPERLINK l _bookmark1 4 HYPERLINK l _bookmark4 SQL注入攻擊的危害 HYPERLINK l _bookmark4 7 HYPERLINK l _bookmark4 IPS設(shè)備對于SQL注入攻擊的防御 HYPERLINK l _bookmark4 7 HYPERLINK l _bookma
3、rk4 IPS設(shè)備SQL注入防御框架 HYPERLINK l _bookmark4 7 HYPERLINK l _bookmark6 IPS設(shè)備SQL注入防御框架的優(yōu)點 HYPERLINK l _bookmark6 9 HYPERLINK l _bookmark7 典型組網(wǎng)應用 HYPERLINK l _bookmark7 10SQL注入攻擊簡介概述結(jié)構(gòu)化查詢語言SQL是用來和關(guān)系數(shù)據(jù)庫進行交互的文本語言。它允許用戶對數(shù)據(jù)進行有效的管理,包含了對數(shù)據(jù)的查詢、操作、定義和控制等幾個方面,例如向數(shù)據(jù)庫寫入、插入數(shù)據(jù),從數(shù)據(jù)庫讀取數(shù)據(jù)等。關(guān)系數(shù)據(jù)庫廣泛應用于網(wǎng)站中,用戶一般通過動態(tài)網(wǎng)頁和數(shù)據(jù)庫間接進
4、行交互。常見的動態(tài)網(wǎng)頁一般都通過形如“ HYPERLINK http:/domain-name/page.asp?arg=value http:/domain-name/page.asp?arg=value”等帶有參數(shù)的URL來訪問。動態(tài)網(wǎng)頁可以是asp、php、jsp或perl等類型。一個動態(tài)網(wǎng)頁中可以有一個或多個參數(shù),參數(shù)類型也可能是整型或字符串型等。安全性考慮不周的網(wǎng)站應用程序(動態(tài)網(wǎng)頁)使得攻擊者能夠構(gòu)造并提交惡意URL,將特殊構(gòu)造的SQL語句插入到提交的參數(shù)中,在和關(guān)系數(shù)據(jù)庫進行交互時獲得私密信息,或者直接篡改Web數(shù)據(jù),這就是所謂的SQL注入攻擊。技術(shù)原理SQL注入攻擊的主要方式是
5、構(gòu)造巧妙的SQL語句,和網(wǎng)頁提交的內(nèi)容結(jié)合起來進行注入攻擊。比較常用的技巧有使用注釋符號、恒等式(如11)、使用union語句進行聯(lián)合查詢、使用insert或update語句插入或修改數(shù)據(jù)等。此外還可以利用一些內(nèi)置函數(shù)輔助攻擊,如使用phpinfo函數(shù)顯示基本信息,char函數(shù)規(guī)避單引號等。下面結(jié)合具體例子介紹幾種簡單的構(gòu)造方法。在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)通常是以表的方式存儲。假設(shè)存在一個名為user的表格,包含有id、username、pwd和level四個列,分別表示了用戶ID、用戶名、密碼和權(quán)限等級。 HYPERLINK l _bookmark0 表1 中列舉了幾種簡單的構(gòu)造方法, 其中出現(xiàn)的
6、“ $username ”和“$password”等字符串為變量名稱。表1 構(gòu)造方法舉例語句說明正常語句: SELECT * FROM user WHERE username = $username AND pwd = $password注入語句: SELECT * FROM user WHERE username = tom/* AND pwd = 這條語句后面的內(nèi)容“AND pwd = ” 因為前面出現(xiàn)的“/*”而被數(shù)據(jù)庫當作是注釋的內(nèi)容直接忽略掉(MySQL中采用/*作為注釋),這樣攻擊者就可以不提交密碼的內(nèi)容而直接登錄語句說明正常語句: SELECT * FROM user WHERE
7、 username = $username AND pwd = $password注入語句: SELECT * FROM user WHERE username = tom AND pwd = or 1=1這條語句利用了11這個恒等式作為邏輯判斷,使得即使后面的pwd判斷為假,該語句依然能夠得到正確的執(zhí)行, 攻擊者不使用密碼而成功登錄正常語句:UPDATE user SET pwd = $password WHERE username = $username注 入 語 句 : UPDATE user SET pwd = abcd,level=3 WHERE username = tom這條語句
8、利用pwd后面的單引號以及后續(xù)的WHERE語句,不僅修改了密碼, 還通過修改level為3成為高權(quán)限用戶正常語句: SELECT * FROM user WHERE username = $username注入語句: SELECT * FROM user WHERE username = tom AND LEFT(pwd,1)=l這條語句利用內(nèi)置函數(shù)來判斷字符串中某個位置的字符,如果成功則顯示出用戶ID。這樣反復的嘗試下去,便會得到真正的密碼正常語句: SELECT * FROM user WHERE username = $username AND pwd = $password注入語句:
9、SELECT * FROM user WHERE username = tom into outfile d:/http root/file001.txt/* AND pwd = 這條語句到相關(guān)路徑下去尋找文件,其中的內(nèi)容就是tom這個用戶的相關(guān)信息正常語句: INSERT INTO user VALUES($id, $username, $password, 1)注入語句: INSERT INTO user VALUES(10,tom, password,3)/*, 1)這條語句新插入了一個ID為10 的用戶tom,并將其權(quán)限直接設(shè)定為最高的3, 這種攻擊方式可以用來通過漏洞注冊高權(quán)限用戶簡
10、單的示例以上給出的攻擊方式是構(gòu)造SQL語句技巧中較為簡單和常見的方式,這里給出一個實際網(wǎng)絡(luò)中的例子,形象的說明SQL注入攻擊的發(fā)生及其危害。 HYPERLINK l _bookmark2 圖1所示的是某開源校友錄網(wǎng)站的界面。正常情況下,如果在下拉框中選擇某個年份,頁面會顯示出該年份畢業(yè)生的相關(guān)信息,此時Web頁面的地址欄中的URL為: HYPERLINK http:/domain-name/Analysis/Project/index.php?act=view&year=2005 http:/domain-name/Analysis/Project/index.php?act=view&yea
11、r=2005圖1 開源校友錄網(wǎng)站存在漏洞的網(wǎng)頁實際上,在對年份進行處理的代碼沒有對用戶提交的數(shù)據(jù)進行有效過濾,導致存在一個SQL注入攻擊漏洞。攻擊者通過構(gòu)造特殊的SQL語句提交給Web,會使得Web 頁面顯示來自于內(nèi)部數(shù)據(jù)庫中的相關(guān)內(nèi)容。這里模擬攻擊者的做法,在Web的地址欄中提交一個混合了SQL語句的URL。代碼在執(zhí)行該語句時對提交的變量內(nèi)容未作合適的判斷,導致SQL注入攻擊得以成功。假設(shè)提交的語句如下: HYPERLINK http:/domain-/ http:/domain- name/Analysis/Project/index.php?act=view&year=2005%20un
12、ion%20select%201,1,1,alumniUserName,1,alumniPassword,1,1,1,1,1,1,1,1,1,1,1,1,1%20from%20alum ni_users%20where%20ID=1 HYPERLINK l _bookmark3 表2對該URL做了詳細的解釋。表2 URL內(nèi)容說明內(nèi)容說明 HYPERLINK /Analysis/Project/index.php /Analysis/Project/index.php?act=view&year=2005正常情況下的URL其中的“ year=2005” 的部分在代碼中是作為SQL語句查詢條件而執(zhí)
13、行的。形如“ select * from table where year=2005”union攻擊者添加的內(nèi)容使得添加的整個部分都正常執(zhí)行, 而不會在server數(shù)據(jù)庫中產(chǎn)生錯誤select%201,1,1,alumniUserName,1,alumn iPassword,1,1,1,1,1,1,1,1,1,1,1,1,1%20from%20alumni_users%20where%20ID=1攻擊者添加的內(nèi)容在alumni_users表中提取出密碼信息并顯示%20空格正常情況下返回的頁面會顯示畢業(yè)生的用戶名以及相關(guān)信息,而這里將密碼作為select語句的選擇列,會在返回頁面中顯示出用戶的密
14、碼。 HYPERLINK l _bookmark3 提交攻擊語句后,頁面返回的內(nèi)容如圖2所示。圖2 攻擊成功后顯示的網(wǎng)頁可以看到,頁面除了返回用戶的用戶名及電子郵箱地址,還返回了經(jīng)過加密的密碼信息。實際上,通過將注入攻擊中的“1”修改為表中相應的列名稱,Web頁面還會返回表中其他列的內(nèi)容,這會使得更多的私人信息得以外泄。SQL注入攻擊的危害從前述的簡介可以看出,只要是帶有參數(shù)的動態(tài)網(wǎng)頁,且此網(wǎng)頁訪問了數(shù)據(jù)庫,就有可能存在SQL注入攻擊,因此SQL注入攻擊潛在的發(fā)生概率相對于其他Web攻擊要高很多,危害面也更廣。其主要危害包括:獲取系統(tǒng)控制權(quán)、未經(jīng)授權(quán)狀況下操作數(shù)據(jù)庫的數(shù)據(jù)、惡意篡改網(wǎng)頁內(nèi)容、私
15、自添加系統(tǒng)帳號或數(shù)據(jù)庫使用者帳號等。目前基于數(shù)據(jù)庫的網(wǎng)絡(luò)應用越來越多。與此同時,用于搜索SQL注入點的軟件在網(wǎng)絡(luò)上隨處可見,攻擊者只需要具備少量的專業(yè)知識就可以利用這些軟件尋找目標進行攻擊。攻擊目標和攻擊者的增加使得SQL注入攻擊在近幾年出現(xiàn)擴大的趨勢。IPS設(shè)備對于SQL注入攻擊的防御IPS設(shè)備SQL注入防御框架H3C通過對SQL注入攻擊分析,發(fā)現(xiàn)這類攻擊主要采用如下幾種方式:通過一些常用的 SQL 注入語句,對網(wǎng)站進行 SQL 注入攻擊。根據(jù) Web 后臺數(shù)據(jù)庫本身的特點,對網(wǎng)站進行 SQL 注入攻擊。使用 SQL 注入掃描工具,對網(wǎng)站進行 SQL 注入攻擊。根據(jù)上述特點,H3C開發(fā)出了一
16、套完整的SQL注入攻擊防御框架,能夠及時發(fā)現(xiàn)各種已經(jīng)暴露的和潛在的SQL注入攻擊。H3C IPS設(shè)備對于SQL注入攻擊的總體防御框架如 HYPERLINK l _bookmark5 圖3所示。圖3 SQL注入攻擊防御框架H3C IPS設(shè)備采用基于特征識別的方式識別并阻斷各種攻擊。設(shè)備有一個完整的特征庫,并可定期對特征庫進行升級。當網(wǎng)絡(luò)流量進入設(shè)備后,設(shè)備會檢測流量與當前特征庫的攻擊特征是否匹配。如果匹配,則阻斷網(wǎng)絡(luò)流量并上報日志;否則,網(wǎng)絡(luò)流量可以順利通過。根據(jù)SQL注入攻擊的特點,H3C IPS特征庫可以從如下幾個方面對SQL注入攻擊特征進行識別:根據(jù)通用SQL語句特點,對其中的異常字段進行
17、識別攻擊者在進行SQL注入攻擊時,都會在URL 中攜帶一些異常字段,如“ and 1=1”。通過識別這些異常字段,檢驗網(wǎng)站是否存在SQL注入漏洞、獲取數(shù)據(jù)庫信息等。根據(jù)網(wǎng)站后臺數(shù)據(jù)庫的特性,對其中的異常字段進行識別目前,網(wǎng)站中主要使用的數(shù)據(jù)庫有:MS-SQL、Access、MySQL、Oracle。每個數(shù)據(jù)庫都有一些系統(tǒng)表,記錄整個數(shù)據(jù)庫信息。此外,一些數(shù)據(jù)庫還有一些額外的功能可以導致SQL注入攻擊。如:MS-SQL數(shù)據(jù)庫可以執(zhí)行系統(tǒng)命令;MySQL數(shù)據(jù)庫可以將整個數(shù)據(jù)庫信息導出到一個文件中;Oracle數(shù)據(jù)庫可以將數(shù)據(jù)庫信息反射到任意監(jiān)聽端口。通過對上述數(shù)據(jù)庫的深入分析,根據(jù)各個數(shù)據(jù)庫自身的
18、特點,提取了URL中出現(xiàn)的異常字段,確保攻擊者無法通過數(shù)據(jù)庫自身攜帶的特性進行SQL注入攻擊。分析SQL注入掃描工具,阻斷SQL注入掃描工具攻擊探測在實際的攻擊中,攻擊者通常使用SQL注入掃描工具對網(wǎng)站進行自動化掃描,探測網(wǎng)站是否存在可以利用的SQL注入漏洞。H3C通過對知名的SQL注入掃描工具進行分析,研究出了這些工具的行為和方法,阻斷其對網(wǎng)站的掃描探測。分析實際環(huán)境中的SQL注入漏洞由于網(wǎng)站的開發(fā)人員對一些輸入?yún)?shù)沒有進行嚴格檢測,在實際環(huán)境中,存在的漏洞也非常多。一些大的知名漏洞發(fā)布網(wǎng)站發(fā)布了大量的SQL注入漏洞。通過分析、總結(jié)這些漏洞,確保攻擊者無法通過已經(jīng)公布的SQL注入漏洞進行攻擊
19、。IPS設(shè)備SQL注入防御框架的優(yōu)點H3C IPS設(shè)備的SQL注入攻擊防御框架有如下幾個優(yōu)點:構(gòu)造了完整的SQL注入檢測模型,準確識別各種SQL注入攻擊H3C針對SQL語言自身的特點,考慮到已知各種攻擊的基本原理和形態(tài),結(jié)合不同數(shù)據(jù)庫的類型及SQL注入掃描工具,在各個不同漏洞模型之上開發(fā)出了通用的、層次化的SQL注入攻擊檢測模型,并融合到特征庫中。這些模型抽象出SQL注入攻擊的一般形態(tài),對主流的攻擊能夠準確識別,構(gòu)成了一個完整的SQL注入檢測模型, 使得模型通用化。H3C通過模擬真實的網(wǎng)絡(luò)環(huán)境,進行了大量的攻防測試,并整理、驗證了近幾年公布的SQL注入漏洞攻擊,使用H3C IPS設(shè)備可以識別并且阻斷所有這些已公布的攻擊。檢測方式靈活,可以準確識別變形的SQL注入攻擊在實際攻擊中,攻擊者為了逃避防攻擊設(shè)備的檢測,經(jīng)常對SQL注入攻擊進行變形,如采用URL編碼技術(shù)、修改參數(shù)等。H3C根據(jù)SQL注入漏洞發(fā)生的原理、攻擊方式和攻擊目標,對SQL注入攻擊特征進行了擴展。即使攻擊者修改注入?yún)?shù)、格式、語句等內(nèi)容,相同漏洞原理下各種變形的攻擊同樣能夠被有效阻斷。這使得設(shè)備的防御范圍擴大,防御的靈活性也顯著增強,極大的減少了漏報情況的出現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三分能力七分責任心得體會模版(2篇)
- 二零二五版煤炭物流運輸新能源車輛采購合同4篇
- 二零二五年度養(yǎng)殖場承包運營管理協(xié)議3篇
- 龍湖地產(chǎn)龍湖一期土石方工程二零二五年度質(zhì)量保證合同4篇
- 2025年度個人對公司養(yǎng)老產(chǎn)業(yè)借款合同(養(yǎng)老產(chǎn)業(yè)發(fā)展支持版)2篇
- 2024藥店藥品追溯系統(tǒng)建設(shè)及運營服務(wù)合同范本3篇
- 2025年度內(nèi)墻涂料施工與綠色建筑認證合同
- 2025年退休人員創(chuàng)業(yè)扶持勞動合同規(guī)范
- 二零二五年度內(nèi)蒙古自治區(qū)肉牛良種引進與推廣合同
- 中小微企業(yè)2024合作創(chuàng)新發(fā)展合同稿版B版
- 物業(yè)民法典知識培訓課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識點詳解
- 2024-2025學年八年級數(shù)學人教版上冊寒假作業(yè)(綜合復習能力提升篇)(含答案)
- 《萬方數(shù)據(jù)資源介紹》課件
- 醫(yī)生定期考核簡易程序述職報告范文(10篇)
- 第一章-地震工程學概論
- 《中國糖尿病防治指南(2024版)》更新要點解讀
- 初級創(chuàng)傷救治課件
- 交通運輸類專業(yè)生涯發(fā)展展示
- 2024年山東省公務(wù)員錄用考試《行測》試題及答案解析
- 神經(jīng)重癥氣管切開患者氣道功能康復與管理專家共識(2024)解讀
評論
0/150
提交評論