第5章 點擊劫持(ClickJacking)
5.1 什麼是點擊劫持
點擊劫持是一種視覺上的欺騙。攻擊者使用一個透明的、不可見的iframe,覆蓋在一個網頁上,通過調整iframe的位置,誘使用戶恰好點擊在iframe頁面的一些功能性按鈕上。
點擊劫持與CSRF有異曲同工之妙,都是在用戶不知情的情況下誘使用戶完成一些動作。
5.2 Flash點擊劫持
攻擊者通過Flash構造出了點擊劫持,在完成一系列複雜的動作後,最終控制了用戶電腦的攝像頭。
該Flash遊戲中的某些點擊是有意義的,有些是無效的。攻擊通過誘導用戶鼠標點擊的位置,能夠完成一些較爲複雜的流程,最終打開了用戶的攝像頭。
5.3 圖片覆蓋攻擊
Cross Site Image Overlaying攻擊,簡稱XSIO。
攻擊者通過調整圖片的style使得圖片能夠覆蓋在他所指定的任意位置。
XSIO不同於XSS,它利用的是圖片的style,或者能夠控制CSS。
由於<img>
標籤在很多系統中對用戶是開放的,因此在現實中有非常多的站點存在被XSIO攻擊的可能。
5.4 拖拽攻擊與數據竊取
瀏覽器的拖拽是不受同源策略限制的。
“拖拽劫持”的思路是誘使用戶從隱藏的不可見iframe中“拖拽”出攻擊者希望得到的數據,然後放到攻擊者能控制的另外一個頁面中,從而竊取數據。
在JavaScript或者Java API的支持下,這個攻擊過程會變得非常隱蔽。
5.5 ClickJacking 3.0:觸屏劫持
這種針對視覺效果的攻擊可以被利用進行釣魚和欺詐。
5.6 防禦ClickJacking
5.6.1 frame busting
5.6.2 X-Frame-Options
5.7 總結
ClickJacking相對於XSS和CSRF來說,因爲需要誘使用戶與頁面產生交互行爲,因此實施攻擊的成本更高。
但仍有可能被攻擊者利用,不可不察。