萬盛學電腦網

 萬盛學電腦網 >> 網絡基礎知識 >> SQL服務器數據庫注入式攻擊解釋

SQL服務器數據庫注入式攻擊解釋

  所謂SQL服務器數據庫注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。

 

  在某些表單中,用戶輸入的內容直接用來構造(或者影響)動態SQL命令,或作為存儲過程的輸入參數,這類表單特別容易受到SQL注入式攻擊。

  常見的SQL注入式攻擊過程類如:

  ⑴ 某個ASP.NET Web應用有一個登錄頁面,這個登錄頁面控制著用戶是否有權訪問應用,它要求用戶輸入一個名稱和密碼。

  ⑵ 登錄頁面中輸入的內容將直接用來構造動態的SQL命令,或者直接用作存儲過程的參數。下面是ASP.NET應用構造查詢的一個例子: System.Text.StringBuilder query = new System.Text.StringBuilder(   "SELECT * from Users WHERE login = '")   .Append(txtLogin.Text).Append("' AND password='")   .Append(txtPassword.Text).Append("'");

  ⑶ 攻擊者在用戶名字和密碼輸入框中輸入"'或'1'='1"之類的內容,例如a' or '1'='1。

  ⑷ 用戶輸入的內容提交給服務器之後,服務器運行上面的ASP.NET代碼構造出查詢用戶的SQL命令,但由於攻擊者輸入的內容非常特殊,所以最後得到的SQL命令變成:SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1'。

  ⑸ 服務器執行查詢或存儲過程,將用戶輸入的身份信息和服務器中保存的身份信息進行對比。

  ⑹ 由於SQL命令實際上已被注入式攻擊修改,已經不能真正驗證用戶身份,所以系統會錯誤地授權給攻擊者。   如果攻擊者知道應用會將表單中輸入的內容直接用於驗證身份的查詢,他就會嘗試輸入某些特殊的SQL字符串篡改查詢改變其原來的功能,欺騙系統授予訪問權限。

 

綠茶軟件園小編推薦閱讀:

Win2008安裝SQL2005建立ASP.NET網站

SQL備份麻煩?試一試這個方法

copyright © 萬盛學電腦網 all rights reserved