原文首发:看雪论坛 http://bbs.pediy.com/thread-217315.htm
var location =”clobbered”;
Safari 4.0.
我们观察到虽然在大多数情况下location变量是定值,但当用户location配置器是通过
defineSetter来定义的时候,location对象就会变成未定义的状态。框架页面只需简单地这样做:
Window.__defineSetter__(“location”,function(){});
现在任何试图读取或者导向框架位置的动作都会失效。
3.7
限制域3
多数框架页面的
framebusting 代码都是基于 javascript 的,以此来检测框架和“破环”自身。如果 javascript
在子框架内容中被禁用,framebusting 代码将不会运行。在IE中,受限域加载的内容会禁用 javascript 和
cookie。为了标记一个来自受限域的框架,页面会采用一个带有 security=restricted 的 iframe
标签。在早先的研究中我们了解到这个特性可以用来挫败framebusting代码
示例:
攻击者:
http://victim.com” security=”restricted”>
结果就是框架中的 javascript 代码被禁用,导致表二所示 的代码不能运行。对点击劫持来说这个方法很有局限性-因为没有 cookie 在子框架重传送,会话控制变得很困难。
3.8
沙箱属性
最近,浏览器开发商开始以iframe标志新的沙箱属性的形式来标准话IE的限制域特性。这个属性是由HTML5所指定的并且现在应用与chrome浏览器中;可被用来在限制域中禁用javascrip;然而因为在子框架中传送了cookie,攻击者能够凭借此来劫持会话来完成攻击。
3.9
设计模式
Stone 显示在框架页面重设计模式能够被开启(通过document.designMode),而后在顶部子域框架来禁用 javascript。Cookie 再次在子框架重分发,。设计模式已经在firefox和 IE8 中得到应用。
3.10
移动端站点
许多站点都在主页上提供可供选择的移动端界面,使用如http://m.example.com 或者 mobile.example.com,这些站点转发全部重要的功能子集,这些与他们的真实点击动作相关。
不幸的是许多站点在他们的主域中使用了framebusting技术但是在移动端页面并没有使用这项技术,事实上,在我们的调查中只有一家站点这么做。只有很少的网站实际上由用户代理自动呈现,使我们能够在所有浏览器中构建就像我们常规网站样的移动界面。更严重的问题是,许多站点不区分是否是来自移动端的流量,这就是说,如果你在Example
Domain上登陆的话你也同时登陆了mobile.example.com。这就能够使攻击者能够对移动端站点进行点击劫持攻击以此来控制整个站点。
本文由 看雪翻译小组 wangrin 编译,来源Stanford Web Security Research
明日系列2~
如果你喜欢的话,不要忘记点个赞哦!