標籤:安全 白帽子
第5章 點擊劫持(clickjacking)5.1 什麼是點擊劫持
點擊劫持是一種視覺上的欺騙手段。是一種在網頁中將惡意代碼等隱藏在看似無害的內容(如按鈕)之下,並誘使使用者點擊的手段。
主要特徵
q 點擊劫持是一種惡意攻擊技術,用於跟蹤網路使用者,擷取其私密資訊或者通過讓使用者點擊看似正常的網頁來遠端控制其電腦。很多瀏覽器和操作平台都有這樣的漏洞。
q 點擊劫持技術可以用內嵌程式碼或者文本的形式出現,在使用者毫不知情的情況下完成攻擊,比如點擊一個表面顯示是“播放”某個視頻的按鈕,而實際上完成的操作卻是將使用者的社交網站個人資訊改為“公開”狀態。
q 點擊劫持這個詞首次出現在2008年,是由互連網安全專家羅伯特·漢森和耶利米·格勞斯曼首創的,這個詞其實是“點擊”(click)和“劫持”(hijacking)兩個片語合而成的。
5.2 Flash點擊劫持
5.3 圖片覆蓋攻擊
點擊劫持的本質是一種視覺欺騙。順著這個思路,還有一些攻擊方法也可以起到類似的作用,比片覆蓋。
由於<img>標籤在很多系統中是對使用者開放的,因此在現實中有非常多的網站存在被XSIO攻擊的可能。在防禦XSIO時,需要檢查使用者提交的HTML代碼中,<img>標籤的style屬性是否可能導致浮出。
5.4 拖拽劫持與資料竊取
"拖拽劫持"的思路是誘使使用者從隱藏的不可見iframe中"拖拽"出攻擊者希望得到的資料,然後放到攻擊者能控制的另外一個頁面中,從而竊取資料。
在JavaScript或者Java API的支援下,這個攻擊過程會變得非常隱蔽。因為它突破了傳統ClickJacking一些先天的局限,所以這種新型的"拖拽劫持"能夠造成更大的破壞。
5.5 ClickJacking 3.0:觸屏劫持
智能手機上的"觸屏劫持"攻擊被稱為TapJacking。
5.6 防禦clickjacking5.6.1 frame busting
通過js代碼禁止iframe的嵌套。該方法不是很實用。
if (top !==window)
top.location = window.location.href;
ClickJacking是一種視覺上的欺騙,那麼如何防禦它呢?針對傳統的ClickJacking,一般是通過禁止跨域的iframe來防範
5.6.2 x-frame-options
在header中增加 X-Frame-Options SAMEORIGIN。
它有三個可選的值:
q DENY
q SAMEORIGIN
q ALLOW-FROM origin
當值為DENY時,瀏覽器會拒絕當前頁面載入任何frame頁面;若值為SAMEORIGIN,則frame頁面的地址只能為同源網域名稱下的頁面;若值為ALLOW-FROM,則可以定義允許frame載入的頁面地址。
除了X-Frame-Options之外,Firefox的"Content Security Policy"以及Firefox的NoScript擴充也能夠有效防禦ClickJacking,這些方案為我們提供了更多的選擇
本文出自 “夢朝思夕” 部落格,請務必保留此出處http://qiangmzsx.blog.51cto.com/2052549/1859549
《白帽子講WEB安全》學習筆記之第5章 點擊劫持(clickjacking)