注入介紹
SQL注入即是指web應用程式對用戶輸入資料的合法性沒有判斷或過濾不嚴,攻擊者可以在web應用程式中事先定義好的查詢陳述句的結尾上添加額外的SQL陳述句,在管理員不知情的情況下實作非法操作,以此來實作欺騙資料庫服務器執行非授權的任意查詢,從而進一步得到相應的資料資訊,

危害性
攻擊者通過SQL注入獲取到服務器的庫名、表名、欄位名,從而獲取到整個服務器中的資料,對網站用戶的資料安全有極大的威脅,攻擊者也可以通過獲取到的資料,得到后臺管理員的密碼,然后對網頁頁面進行惡意篡改,這樣不僅對資料庫資訊安全造成嚴重威脅,對整個資料庫系統安全也影響重大,

注入必須知道的三個庫
| 庫名 | 作用 |
|---|---|
| information_schema | 存盤所有庫名 |
| information_TABLES | 存盤資料庫中的表資訊(包括表屬于哪個資料庫) |
| information_COLUMNS | 存盤整個資料庫中的列資訊(包括列屬于那個表) |
常見注入效果
| 型別 | 介紹 | 語法 |
|---|---|---|
| 基于布爾的盲注 | 根據真偽進行注入 | ?id=1’ and 1=1 # |
| 基于時間的盲注 | 用條件陳述句查看時間延遲陳述句是否執行 | ’ and if(1=0,1, sleep(10)) # |
| 基于報錯注入 | 就是頁面回傳錯誤資訊 | ’ and extractvalue(‘a’,concat(1,(SELECT user()))); |
| 聯合查詢注入 | union | ’ union select user() |
sql注入的兩種檢測方式
1、動態檢測
動態監測分為兩類:手工監測以及工具監測,相對于手動監測的高成本以及高漏檢率,在實際生產程序中更偏向于工具監測,但工具監測同樣存在較大的局限性,其原因在于工具是用報文來判斷SQL注入是否生效,然而僅僅通過報文是很難精準地判斷SQL注入是否存在,因此存在較高的誤報率,
2、靜態檢測
靜態檢測的誤報率相對較低,其主要原因在于SQL注入漏洞的代碼特征較為明顯, (1)使用資料庫互動代碼;
(2)使用字串拼接方式構造動態SQL陳述句; (3)使用未過濾的不可信任資料,
在常規的排查應用系統中是否存在SQL注入漏洞時,由于靜態掃描的代碼特征明顯,誤報率低和直接閱讀相關代碼,作業總量減少的優勢,通常使用靜態掃描,
注入防范措施
分級管理
對用戶進行分級管理,嚴格控制用戶的權限,對于普通用戶,禁止給予資料庫建立、洗掉、修改等相關權限,只有系統管理員才具有增、刪、改、查的權限,例如上述實體中用戶在查詢陳述句中加入了drop
table,肯定是不能讓其執行的,否則系統的資料庫安全性就無法保障,故而通過權限的設計限制,使得即使惡意攻擊者在資料提交時嵌入了相關攻擊代碼,但因為設定了權限,從而使得代碼不能執行,從而減少SQL注入對資料庫的安全威脅,
2、引數傳值
程式員在書寫SQL語言時,禁止將變數直接寫入到SQL陳述句,必須通過設定相應的引數來傳遞相關的變數,從而抑制SQL注入,資料輸入不能直接嵌入到查詢陳述句中,同時要過濾輸入的內容,過濾掉不安全的輸入資料,或者采用引數傳值的方式傳遞輸入變數,這樣可以最大程度防范SQL注入攻擊,
3、基礎過濾與二次過濾
SQL注入攻擊前,入侵者通過修改引數提交“and”等特殊字符,判斷是否存在漏洞,然后通過select、update等各種字符撰寫SQL注入陳述句,因此防范SQL注入要對用戶輸入進行檢查,確保資料輸入的安全性,在具體檢查輸入或提交的變數時,對于單引號、雙引號、冒號等字符進行轉換或者過濾,從而有效防止SQL注入,當然危險字符有很多,在獲取用戶輸入提交的引數時,首先要進行基礎過濾,然后根據程式的功能及用戶輸入的可能性進行二次過濾,以確保系統的安全性,
4、使用安全引數
SQL資料庫為了有效抑制SQL注入攻擊的影響,在進行SQLServer資料庫設計時設定了專門的SQL安全引數,在程式撰寫時應盡量使用安全引數來杜絕注入式攻擊,從而確保系統的安全性,
SQLServer資料庫提供了Parameters集合,它在資料庫中的功能是對資料進行型別檢查和長度驗證,當程式員在程式設計時加入了Parameters集合,系統會自動過濾掉用戶輸入中的執行代碼,識別其為字符值,如果用戶輸入中含有惡意的代碼,資料庫在進行檢查時也能夠將其過濾掉,同時Parameters集合還能進行強制執行檢查,一旦檢查值超出范圍,系統就會出現例外報錯,同時將資訊發送系統管理員,方便管理員做出相應的防范措施,
附:sql注入神器(sqlmap)
鏈接:https://pan.baidu.com/s/1HakqVc70TbZKaRlWRxogNA 提取碼:BOYS
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/353981.html
標籤:其他
