




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、02SQL注入類型03SQL注入防范01SQL注入攻擊分析 SQL注入攻擊分析例如,某個網(wǎng)站的登錄驗證的例如,某個網(wǎng)站的登錄驗證的SQLSQL查詢代碼為:查詢代碼為:v strSQL = SELECT strSQL = SELECT * * FROM users WHERE (name = FROM users WHERE (name = + userName + ) and (pw = + passWord +);+ userName + ) and (pw = + passWord +); 攻擊攻擊者在填寫用戶名密碼表單時惡意填入如下信息:者在填寫用戶名密碼表單時惡意填入如下信息:v us
2、erName = 1 OR 1=1; userName = 1 OR 1=1; 和和passWord = 1 OR passWord = 1 OR 1=1;1=1;v 這時,將導致原本的這時,將導致原本的SQLSQL字符串被修改。因為代碼字符串被修改。因為代碼strSQL = SELECT strSQL = SELECT * * FROM users WHERE (name = 1 FROM users WHERE (name = 1 OR 1=1) and (pw = 1 OR 1=1);OR 1=1) and (pw = 1 OR 1=1);在在WHEREWHERE語句后面的條件判斷結果都
3、會變成語句后面的條件判斷結果都會變成TrueTrue,也就是實際,也就是實際上運行的上運行的SQLSQL命令會變成了命令會變成了strSQL = SELECT strSQL = SELECT * *FROM FROM users;users;,因此實現(xiàn)無賬號密碼,亦可登錄網(wǎng)站,因此實現(xiàn)無賬號密碼,亦可登錄網(wǎng)站。SQL注入類型(1 1)不正確的處理類型)不正確的處理類型v 如果一個用戶提供的字段并非一個強類型,或者沒有實施如果一個用戶提供的字段并非一個強類型,或者沒有實施類型強制,就會發(fā)生這種形式的攻擊。當在一個類型強制,就會發(fā)生這種形式的攻擊。當在一個SQLSQL語句語句中使用一個數(shù)字字段時,
4、如果程序員沒有檢查用戶輸入的中使用一個數(shù)字字段時,如果程序員沒有檢查用戶輸入的合法性(是否為數(shù)字型)就會發(fā)生這種攻擊。例如:合法性(是否為數(shù)字型)就會發(fā)生這種攻擊。例如:v statement := SELECT statement := SELECT * * FROM data WHERE id = + FROM data WHERE id = + a_variable + ;a_variable + ;v 從這個語句可以看出,作者希望從這個語句可以看出,作者希望a_variablea_variable是一個與是一個與“idid”字段有關的數(shù)字。不過,如果終端用戶選擇一個字符串,字段有關的數(shù)
5、字。不過,如果終端用戶選擇一個字符串,就繞過了對轉義字符的需要。例如,將就繞過了對轉義字符的需要。例如,將a_variablea_variable設置為:設置為:1;DROP TABLE users1;DROP TABLE users,它會將,它會將“usersusers”表從數(shù)據(jù)庫中刪表從數(shù)據(jù)庫中刪除,除,SQLSQL語句變成:語句變成:v SELECT SELECT * * FROM DATA WHERE id = 1;DROP TABLE users; FROM DATA WHERE id = 1;DROP TABLE users;SQL注入類型(2 2)數(shù)據(jù)庫服務器中的漏洞)數(shù)據(jù)庫服務
6、器中的漏洞v 有時,數(shù)據(jù)庫服務器軟件中也存在著漏洞,如有時,數(shù)據(jù)庫服務器軟件中也存在著漏洞,如MYSQLMYSQL服務服務器中器中mysql_real_escape_stringmysql_real_escape_string()()v 函數(shù)漏洞。這種漏洞允許一個攻擊者根據(jù)錯誤的統(tǒng)一字符函數(shù)漏洞。這種漏洞允許一個攻擊者根據(jù)錯誤的統(tǒng)一字符編碼執(zhí)行一次成功的編碼執(zhí)行一次成功的SQLSQL注入式攻擊。在數(shù)據(jù)庫字符集設注入式攻擊。在數(shù)據(jù)庫字符集設為為GBKGBK時是可能被繞過的時是可能被繞過的。SQL注入類型(3 3)盲目)盲目SQLSQL注入式攻擊注入式攻擊v 當一個當一個WebWeb應用程序易于遭
7、受攻擊而其結果對攻擊者卻不應用程序易于遭受攻擊而其結果對攻擊者卻不見時,就會發(fā)生所謂的盲目見時,就會發(fā)生所謂的盲目SQLSQL注入式攻擊。有漏洞的網(wǎng)注入式攻擊。有漏洞的網(wǎng)頁可能并不會顯示數(shù)據(jù),而是根據(jù)注入到合法語句中的邏頁可能并不會顯示數(shù)據(jù),而是根據(jù)注入到合法語句中的邏輯語句的結果顯示不同的內容。這種攻擊相當耗時,因為輯語句的結果顯示不同的內容。這種攻擊相當耗時,因為必須為每一個獲得的字節(jié)而精心構造一個新的語句。但是必須為每一個獲得的字節(jié)而精心構造一個新的語句。但是一旦漏洞的位置和目標信息的位置被確立以后,一種稱為一旦漏洞的位置和目標信息的位置被確立以后,一種稱為AbsintheAbsinth
8、e的工具就可以使這種攻擊自動化。的工具就可以使這種攻擊自動化。SQL注入類型(4 4)條件響應)條件響應 有有一種一種SQLSQL注入迫使數(shù)據(jù)庫在一個普通的應用程序屏幕上注入迫使數(shù)據(jù)庫在一個普通的應用程序屏幕上計算一個邏輯語句的值:計算一個邏輯語句的值:SELECT booktitle FROM booklist SELECT booktitle FROM booklist WHERE bookId = OOk14cd AND 1=1WHERE bookId = OOk14cd AND 1=1這會導致一個標準的面面,而語句:這會導致一個標準的面面,而語句:SELECT booktitle SE
9、LECT booktitle FROM booklist WHERE bookId = OOk14cd AND 1=2FROM booklist WHERE bookId = OOk14cd AND 1=2。在頁。在頁面易于受到面易于受到SQLSQL注入式攻擊時,它有可能給出一個不同的結注入式攻擊時,它有可能給出一個不同的結果。如此這般的一次注入將會證明盲目的果。如此這般的一次注入將會證明盲目的SQLSQL注入是可能的,注入是可能的,它會使攻擊者根據(jù)另外一個表中的某字段內容設計可以評判它會使攻擊者根據(jù)另外一個表中的某字段內容設計可以評判真?zhèn)蔚恼Z句。真?zhèn)蔚恼Z句。SQL注入類型(5 5)條件性差錯
10、)條件性差錯如果如果WHEREWHERE語句為真,這種類型的盲目語句為真,這種類型的盲目SQLSQL注入會迫使數(shù)據(jù)庫注入會迫使數(shù)據(jù)庫評判一個引起錯誤的語句,從而導致一個評判一個引起錯誤的語句,從而導致一個SQLSQL錯誤。例如:錯誤。例如:SELECT 1/0 FROM users WHERE username=RalphSELECT 1/0 FROM users WHERE username=Ralph。顯然,。顯然,如果用戶如果用戶RalphRalph存在的話,被零除將導致錯誤。存在的話,被零除將導致錯誤。(6 6)時間延誤)時間延誤時間延誤是一種盲目的時間延誤是一種盲目的SQLSQL注入
11、,根據(jù)所注入的邏輯,它可注入,根據(jù)所注入的邏輯,它可以導致以導致SQLSQL引擎執(zhí)行一個長隊列或者是一個時間延誤語句。引擎執(zhí)行一個長隊列或者是一個時間延誤語句。攻擊者可以衡量頁面加載的時間,從而決定所注入的語句是攻擊者可以衡量頁面加載的時間,從而決定所注入的語句是否為真。否為真。 SQL注入防范 在設計應用程序時,完全使用參數(shù)化查詢在設計應用程序時,完全使用參數(shù)化查詢(Parameterized QueryParameterized Query)來設計數(shù)據(jù)訪問功能。)來設計數(shù)據(jù)訪問功能。 在組合在組合SQLSQL字符串時,針對所傳入的參數(shù)作字符字符串時,針對所傳入的參數(shù)作字符取代(將單引號字符取代為連續(xù)取代(將單引號字符取代為連續(xù)2 2個單引號字符)。個單引號字符)。 如果使用如果使用PHPPHP開發(fā)網(wǎng)頁程序的話,可以打開開發(fā)網(wǎng)頁程序的話,可以打開PHPPHP的魔術引號(的魔術引號(Magic quoteMagic quote)功能(自動將所有的)功能(自動將所有的網(wǎng)頁傳入?yún)?shù),將單引號字符取代為連續(xù)網(wǎng)頁傳入?yún)?shù),將單引號字符取代為連續(xù)2 2個單引號個單引號字符)。字符)。 SQL注入防
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中必修上冊古詩詞大單元教學研究
- 兒童衛(wèi)生安全教育
- TNF-α參與特應性皮炎瘙癢調控的機制研究
- 醫(yī)院安全檢查
- 中學考前勵志課件
- 硬膜下血腫病人護理查房
- 顱腦疾病護理課件
- 預防結核班會課件
- 預防校園欺凌課件
- 《機械設計基礎》課件-第7章 帶傳動
- 中國貨權風險判例研究報告 2024 -供應鏈企業(yè)篇
- 康明斯產(chǎn)品合格證
- 礦山廢水處理行業(yè)調研及投資前景分析報告
- 【五升六暑期閱讀】專題10.環(huán)境描寫及其作用-2024年五升六暑期閱讀專項提升(統(tǒng)編版)5
- DL∕T 1057-2023 自動跟蹤補償消弧線圈成套裝置技術條件
- 【電商直播對消費者購買行為影響:以抖音直播為例開題報告1800字】
- 抑郁病診斷證明書
- 氣體分析儀檢定規(guī)程
- 2024-2029年吞咽困難飲食增稠劑行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃投資研究報告
- (高清版)WST 348-2024 尿液標本的采集與處理
- FZT 73012-2017 文胸行業(yè)標準
評論
0/150
提交評論