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