Clickjacking Attack 偽裝的網頁

Clickjacking Attack 偽裝的網頁

ID-100130886

這篇文章主要介紹一種特別的攻擊手法 clickJacking

  • 什麼是 ClickJacking?
  • 攻擊的技術手法
  • 網站防護的建議

 

什麼是 ClickJacking

ClickJacking 的主要目的是要達到讓受害者執行

Authenticated actions BUT unintentional actions

這是什麼狀況呢? 舉例來說,有兩張複寫紙,

第一張是簽到表,複寫紙下面那張是貸款 1000 萬

因此,駭客拿這兩張請您簽名,善意的受害者在不知情的狀況下,

簽下第一張的簽到表,但是複寫紙的關係,也簽下第二張貸款

因此,這個動作雖然是受害者親筆簽名授權的動作  Authenticated Actions

但是卻不是受害者原本意圖() 想要達到的動作。

這樣的攻擊手法運用到網站上就稱為  “ClickJacking”

也就是受害者的輸入與點擊被綁架了!

 

ClickJacking網頁示意圖

例如下圖(source: OWASP)所示,Target Web 目標網站的特定欄位,”密碼輸入”,

被重疊到另一個駭客網站 (Malicious Web Page),兩個網頁重疊的狀況下,

使用者會不知覺的輸入密碼到駭客網站

ClickJacking

 

善意受害者,瀏覽駭客網站的時候,該駭客網站背後隱藏的是真實銀行的網站,

因為使用者看到的駭客網站經過美化,

使用者於不知情的狀況下,駭客網站輸入欄位為帳號密碼,

而實際幫助駭客登入了銀行網站

因此,駭客就會取得帳號密碼,並且可以進一步做其他的動作

 

如何測試網站是否受到這樣的威脅?

現在我們知道複寫紙 (ClickJacking)的威脅也類似在網站上發生

那麼我們要如何測試自己的網站是否會被駭客拿來這樣的攻擊呢?

最簡單的方式是看看自己的網站是否可以容易地被用 iFrame 來顯示部分內容.

例如:程式碼如下,修改需要測試的網站網址,建立下列的 HTML並且用瀏覽器執行,

如果該目標網站可以透過 iframe 的方式顯示部分內容(這裡的例子設定長 500寬500),

那麼該網站就會受到駭客被利用來做 ClickJacking 的風險。

<html>

<title>Clickjack PoC page</title>

<body>

<p>If you can see partial website contents in the box below, the Website is vulnerable to clickjacking!</p>

<iframe src=”http://TestingSiteURL.com” width=”500”
height=”500”></iframe>

</body>

</html>

如何預防 ClickJacking

技術上預防 ClickJacking 有兩種方法,

1. Client 端的檢查

2. Web Server 端的設定

 

Client 端的防護

多半 Client 端的防護僅能做到防君子難防小人

  • window.confirm() 利用 pop 的確認視窗跟使用者確認所執行的動作,因為確認視窗沒有辦法被 clickJacking 隱藏。
  • 設定 security=”restricted”,例如
  • <iframe src=”http://www.victim.com” security=”restricted”></iframe>
    這樣的缺點是,當Browser Javascript 設定被 disable 的時候,該保護就會失去作用。
  • 設定 Top.location
if(top.location != self.location) {
  top.location = self.location;
}
這樣的缺點是駭客可以指定變數 location 的方式讓這段程式保護失效。

<script> var location = "Hack";
</script>
    <iframe src="http://www.victimSite.com">
</iframe>

 

Web Server 端的防護

因為 client 端的防護方法,多半會被駭客 workaround ,

所以比較建議的會是在 Web Server做設定 " X-Frame-Options”的 headers設定

最大的缺點是,太舊的瀏覽器並不支援這樣的設定

因此,如果有使用者用很舊版的瀏覽器,也會受到這樣的攻擊

X-Frame-Options的設定有三個值

  • DENY:完全禁止 iframe
  • SAMEORIGIN:只允許目前網站的 iFrame
  • ALLOW-FROM uri: 限定特定 URL,但是這個選項,由於2012才新增,會有更多瀏覽器不支援的問題。

 

X-Frame-Options最低支援的瀏覽器版本 (Source: RFC 7034)

http://datatracker.ietf.org/doc/draft-ietf-websec-x-frame-options/

 

Browser DENY/SAMEORIGIN Support Introduced ALLOW-FROM Support Introduced
Chrome 4.1.249.1042 Not supported/Bug reported
Firefox (Gecko) 3.6.9 (1.9.2.9) 18.0
Internet Explorer 8.0 9.0
Opera 10.50
Safari 4.0 Not supported/Bug reported

 

總結

這篇文章我們說明 ClickJacking 主要透過網頁重疊的方式,

就像複寫紙的原理一樣,讓使用者在不知情的狀況下,

執行或是簽屬一個複寫紙(網站)背後他不知情的文件(網頁動作)

如何測試網站是否有這樣的風險?

這篇文章提供一些簡單的 HTML sample code 可以用 iFrame來做基本的驗證

對於網站安全防護來說,要避免網站被駭客這樣的使用,

可以從 client端的程式碼或是 Web Server 著手

因為 client 端的幾種不同的防護方法,都有可能會被駭客用其他方式規避

如果支援的瀏覽器版本允許的情況下,建議從 Web Server 設定 X-Frame-Options

讓網站不受到 ClickJacking 的利用與威脅。

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *