在跨站腳本攻擊中會發生什麼
跨站腳本攻擊(cross-site scripting,簡稱 XSS),是黑客用來潛入 Web 應用程序的最普遍的應用程序層攻擊之一。XSS 是針對特殊 Web 站點的客戶隱私的攻擊,當客戶詳細信息失竊或受控時可能引發徹底的安全威脅。大部分網站攻擊只涉及兩個群體:黑客和 Web 站點,或者黑客和客戶端受害者。與那些攻擊不同的是,XSS 攻擊同時涉及三個群體:黑客、客戶端和 Web 站點。
XSS 攻擊的目的是盜走客戶端 cookies,或者任何可以用於在 Web 站點確定客戶身份的其他敏感信息。手邊有了合法用戶的標記,黑客可以繼續扮演用戶與站點交互,從而冒充用戶。舉例來說,在對一個大型公司的調查中表明,利 用 XSS 攻擊窺視用戶的信用卡號碼和私有信息是可能的。這是通過利用 Web 站點的訪問特權,在受害者(客戶端)浏覽器上運行惡意的 JavaScript 代碼來實現的。這些是非常有限的 JavaScript 特權,除了與站點相關的信息,一般不允許腳本訪問其他任何內容。重點強調的是,雖然 Web 站點上存在安全漏洞,但是 Web 站點從未受到直接傷害。但是這已經足夠讓腳本收集 cookies,並且將它們發送給黑客。因此,黑客獲得 cookies 並冒充受害者。
XSS 技術的深入解析
讓我們調用受攻擊的站點:www.2cto.com.傳統的 XSS 攻擊的核心處位於脆弱的站點中的脆弱的腳本。這些腳本讀取部分 HTTP 請求(通常是參數,但有時也有 HTTP 頭域或路徑),並且在首次不加密的情況下全部或部分地將其回送給響應頁面(因而,不確保它不包含 JavaScript 代碼或 HTML 標簽)。因此,假設該腳本名為 welcome.cgi,其參數為 name.可以通過以下方式進行操作:
GET /welcome.cgi?name=Joe%20Hacker HTTP/1.0
Host: www.vulnerable.site
響應是:
<HTML>
<Title>Welcome!</Title>
Hi Joe Hacker <BR>
Welcome to our system
……
</HTML>
這是怎樣被盜用的呢?黑客設法引誘受害客戶點擊他們提供給用戶的鏈接。這是一個精心設計且蓄含惡意的鏈接,誘使受害者的 Web 浏覽器訪問站點(www.vulnerable.site),並調用入侵腳本。該腳本的數據裡包含了用於非法訪問客戶端浏覽器為 www.vulnerable.site 站點所存儲 cookies 的 JavaScript.這是允許的,因為客戶端浏覽器“運行過”來自 www.vulnerable.site 的 JavaScript,並且 JavaScript 安全模型允許來自特殊站點的腳本訪問屬於該站點的 cookies.