mysql注入漏洞语句,web安全之sql注入漏洞
概念
通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。通俗地講,它是利用現有應用程序,將(惡意)的SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。
注入流程簡介
注入流程
尋找注入點,構建特殊的數據庫查詢語句
系統頁面可注入參數的地方一般有如下幾個方面:
Get參數觸發SQL注入
POST參數觸發SQL注入
Cookie觸發SQL注入
其他參與SQL執行的輸入都有可能進行SQL注入
數據庫引擎執行拼接后的SQL語句
一旦參數被拼接成一個完整的SQL語句,數據庫引擎就會執行SQL語句。
數據庫返回信息
被執行后的SQL語句通過數據庫引擎返回給服務端(瀏覽器等)。
獲取數據庫相關信息
攻擊者利用注入的SQL語句,獲取想要獲取的信息。
入侵破壞
一旦獲取到核心數據,攻擊者就有可能參與一系列的入侵破壞,如:
頁面篡改
網站掛馬
修改后臺數據等。
原理
首先來看一下下面這樣一個SQL語句:
"select username,password from user where username = '"+username+"'and password = '"+password+"'"
此SQL語句是根據用戶名和密碼來從數據庫中獲取記錄,有用戶名和密碼作為雙重驗證。如果此時沒有對用戶輸入的username加以判斷和字符過濾,將username輸入成如下字符:
admin‘ #
那么此時拼接后的完整SQL語句將變為如下形式:
"select username,password from user where username = 'admin' #'and password = '123456'"
我們知道,在MySQL中,#是注釋的意思,這樣對password的限制就徹底失效了,只要數據庫中有admin這條記錄,數據庫就會有數據返回。這樣就背離了我們想要執行目標SQL語句的初衷。這就是典型的SQL注入。簡單來說,構成SQL注入漏洞的條件有二:
控制輸入
用戶能夠控制輸入,系統沒有對輸入做判斷和限制,信任用戶所有的輸入。
拼接SQL
將用戶輸入的參數拼接成了一個完整的SQL語句。
場景
進行SQL注入的場景很多,一切用戶可控輸入的地方,都有可能造成SQL注入。
場景
危害
SQL注入漏洞常見且危害性大,具體表現為:
繞過登錄驗證
使用萬能密碼登錄網站后臺等
獲取敏感數據
獲取網站管理員帳號、密碼等
文件系統操作
列目錄,讀取、寫入文件等
注冊表操作
讀取、寫入、刪除注冊表等
執行系統命令
遠程執行命令
防御措施
使用預編譯,綁定變量(推薦)。
檢查數據類型。
過濾特殊字符和語句。
頁面不錯誤回顯。
總結
以上是生活随笔為你收集整理的mysql注入漏洞语句,web安全之sql注入漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 感谢的锦旗用语大全428条
- 下一篇: oracle数据库硬恢复,Oracle数