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


 

SQL是什么?

結構化查詢語句

SQL注入是什么?

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

造成注入的原因/原理?

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

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

SQL注入分類?

根據數據類型分為:1.整型注入  2.字符型注入

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

SQL注入危害?

1.數據庫信息泄露

2.網頁篡改:登陸后台后發布惡意內容

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

4.私自添加系統賬號

5.讀寫文件獲取webshell

防御?

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

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

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

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

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

擴展:

聯合查詢:合並多個相似的選擇查詢結果

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

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

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

報錯注入:由於配置不當,錯誤信息被輸出到前台,導致攻擊者根據報錯信息進行一系列操作

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

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM