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

解開Twitter的Don't Click攻擊的神秘面紗

原創(chuàng)
安全
Twitter暴露了一個重大安全漏洞。Twitter上到處都是“不要點擊(Don't click)”的留言,后邊跟著一個網(wǎng)址鏈接。實際上,這種攻擊已經(jīng)出現(xiàn)一些時間了,只不過2月12日才大規(guī)模爆發(fā)。當(dāng)用戶登錄Twitter后,如果點擊了“不要點擊”,你的消息里就會出現(xiàn)一條“不要點擊”,然后不斷蔓延。
【51CTO.com 獨家特稿】2009年2月12日,Twitter暴露了一個重大安全漏洞。Twitter上到處都是“不要點擊(Don't click)”的留言,后邊跟著一個網(wǎng)址鏈接。實際上,這種攻擊已經(jīng)出現(xiàn)一些時間了,只不過2月12日才大規(guī)模爆發(fā)。當(dāng)用戶登錄Twitter后,如果點擊了“不要點擊”,你的消息里就會出現(xiàn)一條“不要點擊”,然后不斷蔓延。

一、跨站請求偽造還是點擊劫持

遭到Don't Click攻擊(準(zhǔn)確來說,它應(yīng)該算是一個惡作劇,因為它沒有對用戶造成實質(zhì)性的危害。)黑手的用戶將向Twitter張貼下列消息:

    Don't Click: http://tinyurl.com/amgzs6

下面是當(dāng)時的用戶截圖:

圖1

這看起來好像是一個CSRF攻擊,但是當(dāng)您查看發(fā)動攻擊的頁面的源文件后,就會發(fā)現(xiàn)根本不是這么回事。這個病毒性的Twitter惡作劇用來騙您在Twitter張貼回復(fù)的技術(shù)并不是跨站請求偽造,而是另一種高超的技巧:點擊劫持技術(shù)。所有這一切根本就不使用JavaScript代碼(當(dāng)然跨站請求偽造也可以不用腳本),只用了寥寥幾行CSS代碼就搞定了。

二、深入解析Don't Click攻擊

在攻擊頁面中,含有一個IFrame,用以加載Twitter,并且?guī)в惺孪忍詈玫南ⅲ?/P>

實際上,Twitter本身在您單擊“reply”按鈕的時候,它就在回復(fù)的開頭處預(yù)填了內(nèi)容。所以說,該攻擊使用的策略,與Twitter是一脈相承的。在Iframe之后是一個按鈕:

這可是一個巧妙的騙局,它利用了點擊劫持技術(shù):當(dāng)您單擊這個按鈕的時候,實際上是在Twitter上提交一個表單。但是,它是如何完成的?這可要歸功于CSS了。仔細(xì)看一下這里的CSS:

 


注意IFrame和按鈕的位置,Twitter的(位于IFrame中的)更新按鈕恰好放在了該頁面的正常按鈕的上面;并且這里通過CSS使這個IFRAME變得完全透明,所以您根本就看不到它。所以,用戶將看到如下的景象:

圖2

俗話說,耳聽為虛,眼見為實——真是這樣嗎?很遺憾,有時候眼睛也會欺騙我們,因為它看不到透明的東西。為了弄清真相,我們調(diào)節(jié)內(nèi)嵌框架的透明度,這下您就會明白是怎么回事了,如圖:

圖3

好了,現(xiàn)在真相大白了:當(dāng)您覺得正在點擊(IFrame下面的)普通按鈕的時候,實際上卻在單擊(普通按鈕上面那個透明的)Twitter的“Update”按鈕。假如用戶已經(jīng)登錄到Twitter,那么用戶就會立即向Twitter張貼表單輸入框中的內(nèi)容。拜Twitter的?Status= URL功能所賜,攻擊者可以輕松貼上下列消息,因為該功能允許Twitter預(yù)裝一則消息:

    Don’t Click: http://tinyurl.com/amgzs6

在TinyURL的幫助下,可以對攻擊頁面的URL做些必要的處理,以便誘騙您的跟蹤者來進(jìn)一步傳播此“攻擊”,事實證明這是十分有效的。

三、示例演示

為了更好地進(jìn)行說明,我們用一個示例攻擊頁面進(jìn)行演示。注意,為了讓讀者看到事實真相,我們的例子中沒有將opacity設(shè)為0,因此如果在加載頁面時您仔細(xì)觀察的話,將會看到“Don't Click”按鈕在后臺先于Twitter之前加載的,之后還會看到Twitter的更新按鈕又被“繪制”到了“Don't Click”按鈕之上。也就是說,最后Twitter的更新按鈕把“Don't Click”按鈕完全蓋住了。代碼如下:






現(xiàn)在,當(dāng)讀者使用上面的代碼做實驗時,已經(jīng)看不到Twitter的“update”按鈕了,因為Twitter已經(jīng)修復(fù)了這個嚴(yán)重的安全漏洞。但是我們可以看到有一個不透明的方塊蓋住了先出現(xiàn)的“Don't Click”按鈕。好了,現(xiàn)在介紹一下該漏洞是如何被修復(fù)的。

四、漏洞的修復(fù)

Twitter.com已經(jīng)修補了該漏洞,做法是在它被加載到一個IFRAME的時候,利用一些JavaScript進(jìn)行相應(yīng)的檢查:

    if (window.top !== window.self) {
window.top.location.href = window.self.location.href; }

所以,現(xiàn)在當(dāng)我們試圖將Twitter加載到一個IFRAME中的時候,會發(fā)現(xiàn)瀏覽器被自動重定向到Twitter,這樣的話,攻擊頁面就不能得逞了。

五、小結(jié)

本文對上周Twitter暴露了一個重大安全漏洞,即Don't Click攻擊進(jìn)行了全面深入的介紹。我們首先介紹了Don't Click攻擊的實質(zhì),即點擊劫持,并介紹了該技術(shù)的具體實現(xiàn)代碼。為了讓讀者有一個感性的認(rèn)識,我們還提供了一個示例攻擊頁面,最后介紹了漏洞的修補技術(shù)。

【51CTO.COM 獨家特稿,轉(zhuǎn)載請注明出處及作者!】

【編輯推薦】

  1. 惡意網(wǎng)站兇猛來襲 2008黑榜上半年分析
  2. 瑞星首推“惡意網(wǎng)站監(jiān)測網(wǎng)” 每天500萬網(wǎng)民訪問掛馬網(wǎng)站
  3. 全球惡意網(wǎng)站數(shù)量一年翻三番 21%來自美國
責(zé)任編輯:王文文 來源: 51CTO.com
相關(guān)推薦

2014-07-15 13:54:09

Java8

2014-03-25 10:20:37

Java 8新特性

2010-05-17 09:13:35

2014-03-12 11:11:39

Storage vMo虛擬機(jī)

2021-06-07 08:18:12

云計算云端阿里云

2011-11-18 09:26:18

Javafinally

2015-08-20 13:43:17

NFV網(wǎng)絡(luò)功能虛擬化

2009-09-15 15:34:33

Google Fast

2023-11-02 09:55:40

2016-04-06 09:27:10

runtime解密學(xué)習(xí)

2011-06-22 09:43:01

C++

2023-04-10 11:00:00

注解Demo源碼

2009-06-01 09:04:44

Google WaveWeb

2018-03-01 09:33:05

軟件定義存儲

2010-06-17 10:53:25

桌面虛擬化

2011-08-02 08:59:53

2017-10-16 05:56:00

2021-07-28 21:49:01

JVM對象內(nèi)存

2021-08-11 09:01:48

智能指針Box

2021-09-17 15:54:41

深度學(xué)習(xí)機(jī)器學(xué)習(xí)人工智能
點贊
收藏

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