松隆子Fans ![]() | SQL Injection概述~~~ I. 何謂 SQL Injection SQL Injection 是一個專用名詞描述一個藉由射入特殊 SQL 程式碼 攻擊應用程式的動作。 事實上, 許多 SQL Injection 的問題不是 因為資料庫伺服器的問題, 而是因為確認使用者輸入的程式有不適 當的確認方式。 II. SQL Injection 起因 SQL Injection 的起因通常是因為程式利用字串建造方式執行 SQL 程式碼,舉例,搜尋網頁有可能利用以下程式碼來執行搜尋的動作: (以下範例使用 VBScript 或 ASP 的寫法) Set myRecordset = myConnection.execute(^SELECT * FROM myTable WHERE someText ='^ & request.FORM(^inputdata^) & ^'^) 當使用者輸入以下字串給上述搜尋程式的時候: ' exec master..xp_cmdshell 'net user test testpass /ADD' -- 此字串將被組合成為 : Set myRecordset = myConnection.execute(^SELECT * FROM myTable WHERE someText ='' exec master..xp_cmdshell 'net user test testpass /ADD'--' 請注意,使用者所輸入的第一個「'」符號終止 someText 變數,跟著 執行一個新增新使用者到局部帳號資料庫的動作 。 若上述程式擁有 'sa' 權限,而 MSSQLSERVER 服務使用足夠權限執行 ,攻擊者有可能 獲得一個可進入那台伺服器的帳號。 III. SQL Injection 影響 SQL Injection 所帶來的大小影響是根基被引入的程式來確定 。 不幸 地,許多應用程式使用過度的權限,如: sa 權限或資料庫主人權限去 執行。以下是每種過度權限所帶來的影響: 1. sa 權限 若被攻擊的應用程式擁有 sa 權限,攻擊者有可能讀取,寫入,甚 至刪除所有 SQL 資料庫伺服器裡的資料。 2. db_owner 權限 若被攻擊的應用程式擁有 db_owner 權限,攻擊者有可能讀取或寫 入在被影響資料庫裡的所有資料,攻擊者有可能移除表格,建立新 物件,並完全控制被影響的資料庫。 3. 普通使用者權限 (建議使用) 若被攻擊的應用程式擁有 普通使用者 權限,攻擊者只能控制那個 使用者的資料庫,在最好的狀況下,攻擊者只能執行一些閱讀指令 ,而在最壞狀況下, 攻擊者也只能夠閱讀或寫入所有那個使用者的 表格。 IV. SQL Injection 預防方法 以下是 SQL Injection 的預防方法: 1. 請查清應用程式使用者所輸入的值 , 若希望使用者輸入一些數值 ,請利用 ISNUMERIC 或其他相關 function 來確認。 若希望使用 者輸入 string 資料,請以 「''」 符號代替 「'」 符號 , 您 可以用 replace 或其他相關 function 來作這個動作,如: goodString = replace(inputString,','') 2. 請使用一些步驟來取得資料庫的資料,讓使用者無法直接使用資料 庫的表格,建議使用 ADO 的指令物件把使用者的輸入分類。 3. 重新探討程式碼並測試寫好的程式。 V. SQL Injection 偵測方法 在一個偵測平台上,輸入含有「'」符號的輸入信息給您的應用程式, 若發現有錯誤,請重新探討您的程式碼並再測試寫好的程式。 |
回覆 |
|
![]() | ||||
主題 | 主題作者 | 討論版 | 回覆 | 最後發表 |
【求助】1該用access or sql? | ahdeng | -- 閒 話 家 常 灌 水 版 | 3 | 2004-11-04 11:53 PM |
sql server | chan15 | -- 網 路 軟 體 討 論 一 版 (Browser,Email | 1 | 2004-04-19 04:46 PM |
要學那種 SQL SERVER ? | chengmou | -- 網 路 軟 體 討 論 二 版 (網路其他軟體) | 5 | 2002-01-04 10:48 PM |
要學那種 SQL ? | chengmou | -- 網 路 軟 體 討 論 二 版 (網路其他軟體) | 6 | 2001-05-20 10:50 PM |
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。