什么是界面操作劫持?
界面操作劫持攻击是一种基于视觉欺骗的Web会话劫持攻击,它通过在网页的可见输
入控件上覆盖一个不可见的框(iframe——如果前面分享的东西你都去学了肯定知道
这个是什么),让用户以为在操作可见控件,但是实际上用户的操作行为被其不可见
的框所劫持,执行不可见框中的恶意劫持代码,从而完成在用户不知情的情况下窃取
敏感信息,篡改数据等攻击。
劫持分类:
1、点击劫持:
劫持的是用户的鼠标点击操作,主要的劫持目标是有重要会话交互的页面,比如,银
行交易页面、后台管理页面或者劫持用户的摄像头和麦克风。
例子:
在页面中插入一个指向目标网站的iframe。
在这个示例中有一个button按钮,当iframe设置成完全透明的时候,用户看到的效果
是这样的:
(当透明的设置成完全透明)
(完全透明时的效果)
当把iframe设置成半透明的时候,就可以看到button上覆盖了另一个网页:
(调整透明度)
(半透明度的效果:实际隐藏了一个iframe窗口)
如果这里设置好iframe的位置的话,就可以实现任意位置的覆盖。(这里我就不再演
示了)
也就是当用户点击这个button按钮的时候,实际上他就会点击你所设置的iframe页面
中的某个按钮或者链接。
分析关键部分:
在这里通过控制iframe的长、宽、top、left的位置,就可以随意的把页面中的任何部分覆盖到
任何地方。最关键的是通过opacity来设置透明的,当值为0的时候就是完全不可见。
至此,就完成了一次点击劫持的攻击。
针对图中透明层使用的CSS样式做一下解释:
filter:alpha(opacity=50),数据从0到100,数据越小,透明的越高。
opacity:0.5,数值从0到1,数值越小,透明度越高。
z-index:1,数值可以是负数,高数值的控件会处于低数值控件的前面,数值越高,控件越靠近用户。
position:规定元素的定位类型。
想要铭记,唯有动手练习!
2、拖放劫持:
实际上就是点击劫持的演进版本。
在现在的Web应用中,有一些需要用户采用鼠标拖放完成的操作,而且用户也经常在
浏览器中使用鼠标拖放操作来代替复制粘贴。因此,拖放操作劫持很大程度的扩展了
点击劫持的攻击范围,也将劫持模式从单纯的鼠标点击扩展到了鼠标拖放行为。
例子:通过劫持某个页面的拖放操作实现对其他页面链接的窃取,这些连写中可能会有
session key、token、password等信息;或者可以把其他浏览器中的页面内容拖放
到富文本编辑器模式中,这样就能够看到页面源代码了,而这些HTML源代码中可能
会存在铭感信息。
3、触屏劫持:
移动智能终端设备由于体积限制,一般都没有鼠标、键盘这些输入设备,用户更多的
操作是依靠手指在触屏上的点击或滑动等动作完成。在移动设备上,类似点击劫持的
攻击模式,实现了对用户触摸屏操作的劫持攻击,即界面操作劫持攻击的又一种形式
——触屏劫持。
有什么危害?
界面操作劫持实际上突破了CSRF的防御策略,这是一种社工色彩很强的跨域操作,
而这种跨域正好是浏览器自身的特性,他带来的危害可以很大,比如,篡改与删除数
据,偷取隐私甚至爆发蠕虫。在真实的攻击案例中,这类攻击出现得非常少。但是将
来可能会逐渐躲起来,界面操作劫持会不断地优化。
感兴趣的小伙伴也可以在评论去留言