SQL Injection 相關資訊

SQL Injection( 資料隱碼)攻擊行為簡介

以下是此類攻擊的流程

1. 駭客運用搜尋引擎尋找網頁上的漏洞,並運用自動化工具攻擊網路服務器。

2. 一個<script>字串附加到在後端運行的SQL伺服器中所有的文本或可變長字串列中。

3. 這個腳本與駭客所控制伺服器連接。該伺服器含有一些常用軟體的利用代碼,如Microsoft MS06-014, 協力廠商軟體漏洞,(例如常用的媒體播放器及內容下載軟體)。有的時候還有一些零時差漏洞。

4. 當終端使用者試圖用IE流覽正常的網站時,由於這些網頁都將從SQL伺服器獲取資料,這些資料同時包含了惡意腳本<script>。而 這些腳本會自動連接到駭客的網站。

5. 如果普通使用者沒有依照建議安裝修正程式,防毒軟體,或尚未安裝Microsoft或協力廠商軟體最新版本的更新,那麼他們的電腦就會被感染。

clip_image001

SQL Injection( 資料隱碼)攻擊行為的解決方案

一旦web伺服器遭到SQL注入攻擊,請遵循如下步驟:

1、關閉網站

2、檢查IIS日誌,查找引起這次攻擊的有漏洞的目標網頁

3、聯繫web開發者,修改並加強ASP頁面。

注意這只是一種變通的解決方法,只能臨時解決SQL Injection問題。該網站可能在伺服器再次聯網後被再次注入。為了徹底解決這個問題,請參閱“預防SQL Injection(資料隱碼)攻擊的解決方案”。

 

預防SQL注入攻擊的解決方案

這種SQL Injection攻擊是由網頁程式開發不符合安全編碼的要求所引起的。為了防止攻擊,我們需要驗證所有網頁的字串輸入的函數。比如說,帶有用戶名和密碼輸入框的網站登錄頁。

我們也可以在微軟的官方網站上找到安全指導和最佳實踐建議,來應對SQL Injection(資料隱碼)攻擊

用來減緩與解決SQL Injection攻擊的最佳實踐建議可以在這裡找到:

https://msdn2.microsoft.com/en-us/magazine/cc163917.aspx

SQL 資料隱碼

https://msdn.microsoft.com/zh-tw/library/ms161953.aspx

『資料隱碼』SQL Injection的源由與防範之道

https://www.microsoft.com/taiwan/sql/SQL_Injection.htm

SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(上)

https://www.microsoft.com/taiwan/sql/SQL_Injection_G1.htm

SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(下)

https://www.microsoft.com/taiwan/sql/SQL_Injection_G2.htm

How To - Protect from Injection Attacks in ASP.NET

https://msdn.microsoft.com/en-us/library/bb355989.aspx

How To - Protect from SQL Injection in ASP.NET

https://msdn.microsoft.com/en-us/library/ms998271.aspx

How To - Protect from Cross-Site Scripting in ASP.NET

https://msdn.microsoft.com/en-us/library/ms998274.aspx

Design Guidelines

https://msdn.microsoft.com/en-us/library/aa302420.aspx

Arch/Design Inspection

https://msdn.microsoft.com/en-us/library/aa302421.aspx

 

對於用戶端使用者,請確保電腦系統中已安裝了微軟及協力廠商軟體的最新安全修正程式以及最新的防毒程式定義檔。

注意,SQL Injection 不只會在 MS SQL Server 上會發生,在其它廠牌的資料庫產品也可能會有相同的情況發生。