XSS 攻擊的過程涉及以下三方:
•攻擊者
•受害者
•存在漏洞的網站(攻擊者可以使用它對受害者采取行動)
在這三方之中,只有受害者會實際運行攻擊者的代碼。網站僅僅是發起攻擊的一個載體,一般不會受到影響?梢杂枚喾N方式發起 XSS 攻擊。例如,攻擊者可通過電子郵件、IM 或其他途徑向受害者發送一個經過經心構造的惡意 URL。當受害者在 Web 瀏覽器中打開該 URL 的時侯,網站會顯示一個頁面并在受害者的計算機上執行腳本。
XSS 漏洞是什么樣的呢?
作為一名 Web 開發人員或測試人員,您肯定知道 Web 應用程序的技術基礎是由 HTTP 和 HTML 組成的。HTTP 協議是 HTML 的傳輸機制,可使用代碼設計 Web 頁面布局和生成頁面。
如果 Web 應用程序接受用戶通過 HTTP 請求(如 GET 或 POST)提交的輸入信息,然后使用輸出 HTML 代碼在某些地方顯示這些信息,便可能存在 XSS 漏洞。下面是一個最簡單的例子:
1. Web 請求如下所示:
GEThttp://www.somesite.com/page.asp?pageid=10&lang=en&title=Section%20Title
2. 在發出請求后,服務器返回的 HTML 內容包括:
<h1>Section Title</h1>
可以看到,傳遞給“title”查詢字符串參數的用戶輸入可能被保存在一個字符串變量中并且由 Web 應用程序插入到 <h1> 標記中。通過提供輸入內容,攻擊者可以控制 HTML。
3. 現在,如果站點沒有在服務器端對用戶輸入加以過濾(因為總是可以繞過客戶端控件),那么惡意用戶便可以使用許多手段對此漏洞加以濫用:
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/