實驗內容:
- 尋找一個合適的網站放入到iframe標簽中。實驗中測試了包括知網首頁及登錄界面、淘寶首頁及登錄界面,百度首頁,微信下載界面。發現淘寶登錄界面無法放入,會直接跳轉到淘寶真實的登錄界面,其他的都可以在iframe中使用。最后選擇了微信的下載界面。
將opacity設置為0.5
- 寫用於偽裝的網頁。使用一張簡書的截圖制作了一個簡單的頁面和一個汽車廣告。將“關閉廣告”的按鈕覆蓋在微信下載按鈕的上方,當用戶雙擊關閉廣告時,會發現進入微信Mac版下載界面。
3.將opacity設置為0,此時微信下載界面不可見但仍可以點擊。
點擊劫持的利用:
(一)、結合 CSRF 漏洞
CSRF (Cross-Site Request Forgery CSRF)是指跨站點請求偽造漏洞,目前廣泛使用的CSRF漏洞防御技術是 token 識別技術。token 是網站給每一次 HTTP 連接分配的隨機數,用來標識不同的用戶身份。對於網站開發人員,最方便實用的方法是將 token 存儲在頁面隱藏的表單中,最終跟隨信息共同提交到服務器端。服務器檢查該參數,判斷用戶身份的真實性。因此成功實施 CSRF 攻擊的關鍵因素是正確獲取 token 值,攻擊者需要將載入目標網頁 iframe 中 token 自動添加到 src 屬性后面。使用HTTP “GET”方法的表單會自動完成上述步驟,實現攻擊WEB應用程序。Twitter 蠕蟲攻擊就是利用點擊劫持漏洞來實現CSRF攻擊。
(二)、結合 XSS 漏洞
Clickjacking 和反射型 XSS (跨站點腳本漏洞) 結合,轉變為存儲型 XSS 漏洞。反射型 XSS 漏洞最重要的特征是難於利用。通過 Clickjacking 漏洞,反射型 XSS 可以轉化為存儲型 XSS 漏洞,只要用戶點擊觸發此漏洞,就可以在用戶瀏覽器上執行任意的JavaScript 代碼,因此具有極大的危害性。
防護:
點擊劫持漏洞防御措施可以從兩個方面考慮:服務器端防御和客戶端防御。服務器端防御主要涉及到用戶身份驗證,客戶端防御主要涉及到瀏覽器的安全。
(一)、服務器端防御
服務器端防御點擊劫持漏洞的思想是結合瀏覽器的安全機制進行防御,主要的防御方法介紹如下。
1、 X-FRAME-OPTIONS 機制
在微軟發布新一代的瀏覽器Internet Explorer 8.0中首次提出全新的安全機制:X-FRAME-OPTIONS。該機制有兩個選項:DENY 和 SAMEORIGIN。DENY表示任何網頁都不能使用 iframe 載入該網頁,SAMEORIGIN表示符合同源策略的網頁可以使用 iframe載入該網頁。如果瀏覽器使用了這個安全機制,在網站發現可疑行為時,會提示用戶正在瀏覽的網頁存在安全隱患,並建議用戶在新窗口中打開。這樣攻擊者就無法通過 iframe 隱藏目標的網頁。
2、 使用 FrameBusting 代碼
點擊劫持攻擊需要首先將目標網站載入到惡意網站中,使用 iframe 載入網頁是最有效的方法。Web安全研究人員針對 iframe 特性提出 Frame Busting 代碼,使用 JavaScript 腳本阻止惡意網站載入網頁。如果檢測到網頁被非法網頁載入,就執行自動跳轉功能。Frame Busting代碼是一種有效防御網站被攻擊者惡意載入的方法,網站開發人員使用Frame Busting代碼阻止頁面被非法載入。但是,如果用戶瀏覽器禁用JavaScript腳本,那么FrameBusting代碼也無法正常運行。所以,該類代碼只能提供部分保障功能。
(二)、客戶端防御
由於點擊劫持攻擊的代碼在客戶端執行,因此客戶端有很多機制可以防御此漏洞。
1、 升級瀏覽器
最新版本的瀏覽器提供很多防御點擊劫持漏洞的安全機制,對於普通的互聯網用戶,經常更新修復瀏覽器的安全漏洞,能夠最有效的防止惡意攻擊。
2、 NoScript 擴展
對於Firefox的用戶,使用 NoScript 擴展能夠在一定程度上檢測和阻止點擊劫持攻擊。利用 NoScript 中 ClearClick 組件能夠檢測和警告潛在的點擊劫持攻擊,自動檢測頁面中可能不安全的頁面。
參考文獻:
[1]王劍,張玉清.點擊劫持漏洞攻防技術研究[J].信息網絡安全,2011(07):16-19.
[2]來源:簡書 作者:該帳號已被查封_才怪 鏈接:https://www.jianshu.com/p/251704d8ff18