1)ClickJackinghtml
ClickJacking点击劫持,这是一种视觉上的欺骗。前端
攻击者使用一个透明的、不可见的iframe,覆盖在网页的某个位置上,诱使用户点击iframe。html5
2)TapJackingweb
如今移动设备的使用率愈来愈高,针对移动设备的特色,衍生出了TapJacking(触屏劫持)。ajax
手机上的屏幕范围有限,手机浏览器为了节约空间,能够隐藏地址栏,手机上的视觉欺骗会更加容易实施。跨域
1. 第一张中最上方显示了浏览器地址栏,同时攻击者在页面中画出了一个假的地址栏;浏览器
2. 第二张中真实的浏览器地址栏已经自动隐藏了,此时页面中只剩下假的地址栏;安全
3. 第三张中是浏览器地址栏被正常隐藏的状况。服务器
这种针对视觉效果的攻击能够被利用进行钓鱼和欺诈。网络
3)X-Frame-Options
针对传统的界面劫持,经过禁止iframe来防范。
HTTP头中有一个响应头X-Frame-Options,有三个值能够选择:
1. DENY:该页面不容许加载任何 iframe页面。
2. SAMEORIGIN:该页面能够加载相同域名的 iframe页面。
3. ALLOW-FROM uri:该页面能够加载指定来源的 iframe页面。
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
参考资料: