XFS框架脚本漏洞介绍

※ 介绍 ※

XFS即Cross-FrameScripting跨框架脚本,也叫iFrame注入,了解XFS问题前先来看下面这个小例子,有如下一段html代码。








Test




username:

password:

      

例如一个网站的登录功能,这里为了举例,我们添加了一个检查窗口的按钮,点击后会执行check函数,check用来检测当前页面运行窗口是否为顶部窗口。

在一个html页面中,可能存在多个frame框架,top指顶层框架,即第一层,self指的是当前的窗口。

这时运行此页面,因为页面并没有嵌入到frame框架中,所以是最顶层的窗口,运行结果如下。

XFS框架脚本漏洞介绍_第1张图片

我们再来看下嵌入到框架中的样子,例如下面的html代码,加入了frame框架,将上面的1.html进行了引入。








  

此时运行这个2.html,页面内容和1.html一样,执行检查窗口运行结果如下。

XFS框架脚本漏洞介绍_第2张图片

※ 攻击方式 ※

了解上面现象后,攻击方式很简单,也就是我们将攻击目标的URL引入框架中,发送给目标用户,诱骗其点击即可,对于我们自己的攻击地址可以使用类似域名、短链接等等方式增加迷惑性。

造成的危害主要是钓鱼,数据和身份的窃取,例如以下代码,我们在2.html中加入了一段JS,JS每隔一秒会将用户的按键信息发送给自己。

※ 修复方式 ※

修复方式我们可以直接从JS上来弥补,例如直接判断当前窗口是否为顶层窗口,如果存在框架中可直接进行替换,示例代码如下。

if(top != self){
    top.location = self.location;
}

在1.html中加入此段代码后,访问2.html会直接跳转到1.html

除此外还有一个修复方式就是给相应头添加X-Frame-Options字段,它用来告诉浏览器页面中是否可以存在、