.NET跨框架脚本(XFS)漏洞解决方案

跨框架脚本(XFS)漏洞使攻击者能够在恶意页面的 HTML iframe 标记内加载易受攻击的应用程序。攻击者可以使用此漏洞设计点击劫持攻击,以实施钓鱼式攻击、框架探查攻击、社会工程攻击或跨站点请求伪造攻击。

点击劫持攻击的目的是欺骗受害用户在不了解的目标网站上与攻击者选择的 UI 元素交互,然后反过来代表受害者执行特权功能。为达到这一目的,攻击者必须攻击 XFS 漏洞以在 iframe 标记内加载攻击目标,使用层叠样式表(CSS)隐藏该攻击目标并在恶意页面上叠加钓鱼内容。通过将 UI 元素置于钓鱼页面上以与攻击中针对的页面上的 UI 元素叠加,攻击者可以确保受害者不得不与其不可见的目标页面上的 UI 元素交互。

跨框架脚本漏洞使攻击者能够在 iframe 内嵌入易受攻击的应用程序。攻击此漏洞可能会导致:劫持用户事件,如击键。窃取敏感信息。通过结合使用跨站点请求伪造攻击执行特权功能。

漏洞描述: 弱点描述: X-Frame-Options HTTP响应头可以指示浏览器是否允许当前网页在“frame”或“iframe”标签中显示,以此 使网站内容不被其他站点引用和免于点击劫持攻击。

修复和改进建议: 一般性的建议: 给您的网站添加X-Frame-Options响应头,赋值有如下三种,1、DENY:无论如何不在框架中显示;2、SAMEORIGIN: 仅在同源域名下的框架中显示;3、ALLOW-FROM uri:仅在指定域名下的框架中显示。如Apache修改配置文件 添加“Header always append X-Frame-Options SAMEORIGIN”;Nginx修改配置文件“add_header X-Frame-Options SAMEORIGIN;”。

解决方案:

1.配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中:

<system.webServer>
  ...
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>
  ...
</system.webServer>

2.使用客户端 frame busting JavaScript 作为对 XFS 的保护。这样也将保护不支持 X-Frame-Options 标头的旧版本浏览器用户免受点击劫持攻击。

在“X-FRAME-OPTIONS”或者“浏览器防御部署”被广泛使用之前,网站防御ClickJacking的唯一方法也只能使用javascript脚本。我们把这样的javascript脚本称为-- Frame Busting,而突破“Frame Busting ”的脚本,则称为Busting Frame Busting。

需要加入的样式和脚本:

<head>
    <style>
        body {
            display: none;
        }
    </style>
</head>

<script>
    if (self == top) {
        var theBody = document.getElementsByTagName('body')[0];
        theBody.style.display = "block";
    } else {
        top.location = self.location;
    }
</script>

猜你喜欢

转载自blog.csdn.net/Teemo_2016/article/details/81167737