1. 程式人生 > >網路安全知識之XSS介紹

網路安全知識之XSS介紹

1、XSS簡介

跨站指令碼攻擊(Cross Site Script為了區別於CSS簡稱為XSS)指的是惡意攻擊者往Web頁面裡插入惡意html程式碼,當用戶瀏覽該頁之時,嵌入其中Web裡面的html程式碼會被執行,從而達到惡意使用者的特殊目的。

XSS跨站漏洞如此普遍和流行的主要因素有如下幾點:

  • web瀏覽器本身的設計是不安全的,瀏覽器包含了解析和執行javaScript等指令碼語言的能力,這些語言可以用來建立各種豐富的功能,而瀏覽器只會執行,不會判斷資料和程式碼是否惡意。
  • 輸入和輸出是web應用程式最基本的互動,在這過程中,若沒有做好安全防護,Web程式很容易出現XSS漏洞。
  • 現在的應用程式大部分是通過團隊合作完成的,程式設計師之間的水平層次不齊,很少有人受過正規的安全培訓,不管是開發程式設計師還是安全工程師,很多沒有真正意識到XSS的危害。
  • 觸發跨站指令碼的方式非常簡單,只要像HTML程式碼中注入指令碼即可,而且執行此類攻擊的手段眾多,譬如利用CSS、Flash等。XSS技術的運用靈活多變,做到完全防禦是一件相當困難的事情。
  • 隨著Web 2.0的流行,網站上互動功能越來越豐富。Web 2.0鼓勵資訊分享與互動,這樣使用者就有了更多的機會去檢視和修改他人的資訊,比如通過論壇、blog或社交網路,於是黑客也就有了更廣闊的空間發動XSS攻擊。

2、XSS的危害

  • 盜取各類使用者帳號,如機器登入帳號、使用者網銀帳號、各類管理員帳號
  • 控制企業資料,包括讀取、篡改、新增、刪除企業敏感資料的能力
  • 盜竊企業重要的具有商業價值的資料
  • 非法轉賬
  • 強制傳送電子郵件
  • 網站掛馬
  • 控制受害者機器向其它網站發起攻擊

3、XSS漏洞的分類

XSS漏洞按照攻擊利用手法的不同,有以下三種類型:
  • 型別A,本地利用漏洞,這種漏洞存在於頁面中客戶端指令碼自身。其攻擊過程如下所示: Alice給Bob傳送一個惡意構造了WebURL Bob點選並查看了這個URL。 惡意頁面中的JavaScript開啟一個具有漏洞的HTML頁面並將其安裝在Bob電腦上。 具有漏洞的HTML頁面包含了在Bob電腦本地域執行的JavaScript。 Alice的惡意指令碼可以在Bob的電腦上執行Bob所持有的許可權下的命令。
  • 型別B,反射式漏洞這種漏洞和型別A有些類似,不同的是Web客戶端使用Server端指令碼生成頁面為使用者提供資料時,如果未經驗證的使用者資料被包含在頁面中而未經
    HTML實體
    編碼,客戶端程式碼便能夠注入到動態頁面中。其攻擊過程如下:
    Alice經常瀏覽某個網站,此網站為Bob所擁有。Bob的站點執行Alice使用使用者名稱/密碼進行登入,並存儲敏感資訊(比如銀行帳戶資訊)。 Charly發現Bob的站點包含反射性的XSS漏洞。 Charly編寫一個利用漏洞的URL,並將其冒充為來自Bob的郵件傳送給Alice。 Alice在登入到Bob的站點後,瀏覽Charly提供的URL。 嵌入到URL中的惡意指令碼在Alice的瀏覽器中執行,就像它直接來自Bob的伺服器一樣。此指令碼盜竊敏感資訊(授權、信用卡、帳號資訊等)然後在Alice完全不知情的情況下將這些資訊傳送到Charly的Web站點。
  • 型別C,儲存式漏洞該型別是應用最為廣泛而且有可能影響到Web伺服器自身安全的漏洞,駭客將攻擊指令碼上傳到Web伺服器上,使得所有訪問該頁面的使用者都面臨資訊洩漏的可能,其中也包括了Web伺服器的管理員。其攻擊過程如下: Bob擁有一個Web站點,該站點允許使用者釋出資訊/瀏覽已釋出的資訊。 Charly注意到Bob的站點具有型別C的XSS漏洞。 Charly釋出一個熱點資訊,吸引其它使用者紛紛閱讀。 Bob或者是任何的其他人如Alice瀏覽該資訊,其會話cookies或者其它資訊將被Charly盜走。 型別A直接威脅使用者個體,而型別B和型別C所威脅的物件都是企業級Web應用。

4、XSS攻擊例項

  • 新浪微博XSS受攻擊事件
  • 去掉supply後臺xss過濾器,可以實現xss攻擊

5、防禦措施

  • 應用程式增加強壯的XSS過濾器