攻擊者利用 web 應用程序對用戶輸入驗證上的疏忽,在輸入的數據中包含對某些數據庫系統有特殊的意義的符號和命令,讓攻擊者有機會直接對後臺數據庫下達指令
,進而實現對後臺數據庫乃至整個應用系統的入侵。web
當今數據庫模型主要分爲兩種,即關係型數據庫和非關係型數據庫。redis
關係型數據庫mongodb
把複雜結構歸結爲簡單的二元關係(即二位表格形式),經過SQL結構化查詢語句存儲數據,保持數據一致性,遵循ACID理論(即原子性,一致性,隔離性,持久性),例如MySQL、SQL Server、Oracle數據庫
非關係型數據庫安全
被稱爲NoSQL數據庫,在特定的場景下能夠發揮不可思議的高效率和高性能,例如:memcaahed、redis、mongodb服務器
SQL注入原理svg
SQL注入攻擊的本質,服務器沒有過濾用戶輸入的惡意數據,直接把用戶輸入的數據看成SQL語句執行,從而影響數據庫安全和平臺安全。工具
SQL注入的本質性能
對於輸入檢查不充分,致使SQL語句將用戶提交的非法數據看成語句的一部分來執行。網站
兩個條件
危害
形成緣由
瞭解了SQL注入,那麼如何實現SQL注入?
SQL注入分爲自動化注入
和手工注入
下邊的工具是爲自動化注入準備的
全適配工具
Sqlmap【屬於SQL注入工具】
單適配工具
穿山甲注入軟件 ; 海陽頂端注入軟件【只適配於PHP注入】
其餘
NBSI , 阿D注入【屬於ASP \ JSP 注入工具 】 ; Havij ,Sqlid 【屬於SQL注入工具】
而後是手工注入的核心
其過程大體能夠總結爲:
引用一句經典的話:SQL注入其實就是數據和代碼搶活幹
多言無益,我先擺上一個幾年前多數網站都有的漏洞
在網站登錄界面輸入用戶名的時候 直接輸入SQL代碼:‘whoever’;DROP TABLE users; 其原理: 首先執行第一條,分號爲分割符,服務器返回錯誤,而後執行第二條,會刪掉整個user表
後期更新,講SQL注入的其餘實例…