谨慎能捕千秋蝉(三)——界面操作劫持与HTML5安全
一、界面操作劫持
1)ClickJacking
ClickJacking点击劫持,这是一种视觉上的欺骗。
攻击者使用一个透明的、不可见的iframe,覆盖在网页的某个位置上,诱使用户点击iframe。
2)TapJacking
现在移动设备的使用率越来越高,针对移动设备的特点,衍生出了TapJacking(触屏劫持)。
手机上的屏幕范围有限,手机浏览器为了节约空间,可以隐藏地址栏,手机上的视觉欺骗会更加容易实施。
1. 第一张中最上方显示了浏览器地址栏,同时攻击者在页面中画出了一个假的地址栏;
2. 第二张中真实的浏览器地址栏已经自动隐藏了,此时页面中只剩下假的地址栏;
3. 第三张中是浏览器地址栏被正常隐藏的情况。
这种针对视觉效果的攻击可以被利用进行钓鱼和欺诈。
3)X-Frame-Options
针对传统的界面劫持,通过禁止iframe来防范。
HTTP头中有一个响应头X-Frame-Options,有三个值可以选择:
1. DENY:该页面不允许加载任何 iframe页面。
2. SAMEORIGIN:该页面可以加载相同域名的 iframe页面。
3. ALLOW-FROM uri:该页面可以加载指定来源的 iframe页面。
二、HTML5安全
HTML5中新增的一些标签和属性,使得XSS等Web攻击产生了新的变化,在HTML5 Security Cheatsheet中总结了这些变化。
1)隐藏URL恶意代码
反射型XSS中,会将恶意代码写在URL参数中,这样的话,用户也能看到恶意代码,例如下面的链接:
http://www.csrf.net/csrf.html?id=<script>111</script>
可以通过window.history来操作浏览器的历史记录。
pushState()有三个参数:状态对象、标题,可选的URL地址。
history.pushState({},"", location.href.split('?').shift());
执行上面那段代码后就会将参数隐藏。
新的URL地址就是下面这个:
“pushState”还可以伪造浏览器历史记录。
for(i=0; i<10; i++)
history.pushState({},"", "/"+i+".html");
2)HTML5下的僵尸网络
僵尸网络(Botnet)是指在大量的计算机中植入特定的恶意程序,使控制者能够通过若干计算机直接向其他计算机发送指令,进行网络攻击。
基于Web前端的僵尸网络可以用作DDOS攻击,这里涉及Web Worker技术和CORS处理机制,再通过Web蠕虫传播。
Web Worker是一种多线程机制,可以异步执行恶意JS代码,而不影响用户在浏览器中的正常操作。
CORS处理机制工作在浏览器层面,如果服务器不允许跨站,浏览器将拦截服务器返回的结果,也就是说跨域请求,服务器也会正常响应。
那么就可以事先写好一段异步请求的脚本(worker.js),然后通过Web Worker来执行这段脚本,不断的向目标服务器发起请求。
var worker_loc = 'worker.js';//封装了ajax请求的脚本
var target = 'http://news.qq.com/photo.shtml';//要攻击的网址
//可实例化多个Web Worker
var workers = [];
for (i = 0; i < 1; i++) {
workers[i] = new Worker(worker_loc);
workers[i].postMessage(target);//跨域消息传递
}
demo源码下载:
http://download.csdn.net/download/loneleaf1/9747052
参考资料:
谨慎能捕千秋蝉(三)——界面操作劫持与HTML5安全的更多相关文章
- 谨慎能捕千秋蝉(一)——XSS
最近在研读<白帽子讲web安全>和<Web前端黑客技术揭秘>,为了加深印象,闲暇之时做了一些总结. 下面是书中出现的一些专有词汇: POC(Proof Of Concept): ...
- 谨慎能捕千秋蝉(二)——CSRF
CSRF(Cross Site Request Forgery)跨站点请求伪造. CSRF的本质是当重要操作的参数都能被攻击者预测到,才能成功伪造请求. 一.场景演示 下图是一个伪造请求的场景,按顺序 ...
- github之无命令可视化界面操作——GitHub DeskTop
Git是Linuxs之父Lunus用C语言写的一个非常好用的分布式版本控制系统. GitHub可以给我们提供免费的代码仓库,并用Git可以在上面提交代码并进行版本控制.使用Git一般要安装Git ,并 ...
- Entity Framework 实体框架的形成之旅--界面操作的几个典型的处理(8)
在上篇随笔<Entity Framework 实体框架的形成之旅--数据传输模型DTO和实体模型Entity的分离与联合>里面,介绍了在Entity Framework 实体框架里面引入了 ...
- //四舍五入//得到倒序//比较字符串//拦截时间,实现超时锁屏//判断是否越狱//配置PodFile//Storyboard中跳转操作//处理不可逆的push界面操作
//处理不可逆的push界面操作 VerifyRealNameViewController *verifyRealNameCtrl = [VerifyRealNameViewController vi ...
- SQL Server 索引的图形界面操作 <第十二篇>
一.索引的图形界面操作 SQL Server非常强大的就是图形界面操作.关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL S ...
- [eclipse] 三个操作技巧
[eclipse] 三个操作技巧 1.快捷键Ctrl+Shift+i:Debug调试中直接获取方法的返回值 在下图代码中,想知道getHost(),则在调试时运行完该句代码后,选中"urlU ...
- selenium2支持无界面操作(HtmlUnit和PhantomJs)
selenium2支持无界面操作(HtmlUnit和PhantomJs) selenium2支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaD ...
- Oracle知识梳理(三)操作篇:SQL基础操作汇总
Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式: CREATE TABLE table_name ( col_ ...
随机推荐
- 一次性能优化,tps从400+到4k+
项目介绍 路由网关项目watchman ,接收前端http请求转发到后端业务系统,功能安全验证,限流,转发. 使用技术:spring boot+ nreflix zuul,最开始日志使用slf4j+l ...
- python继承的实例
class SchoolMember(object):#定义学校 member=0#默认成员为0个 amount=0#默认学费为0元 def __init__(self,name,age,sex):# ...
- 《javascript语言精粹》——第3章对象
第三章:对象: 属性名字:可以是包括空字符串在内的任意字符串: 属性值:是除undefined值之外的任何值; [1].对象字面量: var obj={}; //空对象 var obj = new O ...
- 基于STM32的USB枚举过程学习笔记
源:基于STM32的USB枚举过程学习笔记 基于STM32的USB枚举过程学习笔记(一) 基于STM32的USB枚举过程学习笔记(二) 基于STM32的USB枚举过程学习笔记(三) 基于STM32的U ...
- thinkPHP的学习
1.版本,以3.1为主,因为手册是基于这个的,最新的版本,还没有对应的手册 2.发现一个问题,echo 中文时,出现乱码,而调用模版则正常. 3.写url的注意大小写.index和Index是不同的 ...
- 统计学常用概念:T检验、F检验、卡方检验、P值、自由度
1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一 ...
- UVa 908 - Re-connecting Computer Sites
题目大意:有n个网站,由m条线路相连,每条线路都有一定的花费,找出连接所有线路的最小花费. 最小生成树问题(Minimal Spanning Tree, MST),使用Kruskal算法解决. #in ...
- 代码中使用bitmap资源并加载到控件上
1.从res/drawable/XX.jpg里引用图片资源: 1. Resources res = getResources(); Bitmap inDrawable= BitmapFactory.d ...
- keystore 介绍
Keytool 是一个有效的安全钥匙和证书的管理工具. Java 中的 keytool.exe (位于 JDK\Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存 ...
- Oracle用户权限分配
一.权限分类 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理 1.系统权限分类: ...