SQL注入原理&分類&危害&防護

 

SQL是什麼?

結構化查詢語句web

SQL注入是什麼?

是一種將SQL 語句插入或添加到用戶輸入的參數中,這些參數傳遞到後臺服務器,加以解析並執行shell

形成注入的緣由/原理?

1.對用戶輸入的參數沒有進行嚴格過濾(如過濾單雙引號 尖括號等),就被帶到數據庫執行,形成了SQL注入數據庫

2.使用了字符串拼接的方式構造SQL語句安全

SQL注入分類?

根據數據類型分爲:1.整型注入  2.字符型注入服務器

根據注入語法分爲:1.聯合查詢注入  2.報錯型注入    3.布爾型注入  4.延時型注入  5.多語句查詢注入網站

SQL注入危害?

1.數據庫信息泄露編碼

2.網頁篡改:登錄後臺後發佈惡意內容spa

3.網站掛馬 : 當拿到webshell時或者獲取到服務器的權限之後,可將一些網頁木馬掛在服務器上,去攻擊別人字符串

4.私自添加系統帳號io

5.讀寫文件獲取webshell

防護?

1.對進去數據庫的特殊字符(單雙引號 尖括號等)進行編碼轉換

2.不要使用動態拼裝SQL,使用參數化SQL

3.不要使用管理員權限的數據鏈接,最好爲每一個應用使用單獨的數據庫鏈接

4.應用異常信息儘可能給出少的提示,最好自定義報錯信息對原始報錯信息進行包裝

5.使用防火牆,安全狗,雲盾等

擴展:

聯合查詢:合併多個類似的選擇查詢結果

聯合查詢限制條件:必須由兩條或兩條以上的select語句組成,語句之間用關鍵字union分隔

                                 union中的每一個查詢必須包含相同的列

無論是報錯還聯合注入都是基於整型和字符型注入這兩種類型下的

報錯注入:因爲配置不當,錯誤信息被輸出到前臺,致使攻擊者根據報錯信息進行一系列操做

延時注入和布爾注入共同點:都是一個字符一個字符爆出來的,耗費時間長,都沒有顯示位,都要ASCII碼推算

相關文章
相關標籤/搜索