Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1174284
  • 博文数量: 272
  • 博客积分: 3899
  • 博客等级: 中校
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-15 14:53
文章分类

全部博文(272)

文章存档

2012年(272)

分类: 网络与安全

2012-06-25 15:43:48

虽然IE备受批评,但是从某些安全性上来说,IE还是做的挺不错的。

比如IEiframe拦截本地cookieIEiframe里实现一个security属性。这些特性都是FF没有的。

而今天则看到了另外一个安全问题。

在浏览器里,如果直接访问某个swf文件,浏览器会自动加上embed标签。

比如,直接访问

那么,
对于FFFirefox 3.0.3测试),页面源代码为:


对于IEIE7测试),会自动调用res://mshtml.dll/objectembed_neutral.js 来生成页面,页面代码为



注意到,这两个页面的embed标签里面,都没有设置allowScriptAccess属性的值。

 Flash 8 以后, allowScriptAccess 默认值是 sameDomain ,我的flash版本是 9.0.124 ,所以在这里应该也是 sameDomain,就是说,svck.swf可以访问当前html里的jsDOM对象

IE里,认为这样自动化生成的页面是不怎么安全的,所以IE做了一件事情,就是限制这个flash访问当前窗口的document 对象

这本来是很好的,但是IE居然存在这样一个bug (存在IE6 /IE7 / IE8 Betas 中):

刷新一次页面后,原本被限制访问的document对象,居然可以访问了!

简单的F5刷新页面后:

对于Firefox ,则更不堪,从一开始就没有做任何限制

那么,如何利用这个特性,或者说是bug

flashas 脚本中,直接调用

window.location.reload(); 

刷新当前页面,就可以访问当前页面的document对象了。

在这里,还可以在AS中通过捕获访问docuemnt的异常来判断浏览器是否是IE,也算是一种fingerprint

Bug发现者的原文在这里

阅读(1147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~