返回安全研究主页

记录阿里的安全经验 

Html5新功能上的ui-redressing


博文作者:J4rn4ben

发布日期:2013-10-14

博文内容:


      Html5出来已经有一段时间了,而且已经很低调的应用到了我们很多网站上面,但是到目前为止html5的出现到也没有引发新的较大的安全问题。但是现在没有不代表以后,因为html5毕竟只是一个规范,在当今潮流下,谁都想做规范的制定者,HTML5标准制定组织WHATWG与W3C就曾经因为理念上的差异分裂过。而且规范出来以后,最终的实现是在浏览器上,在当今浏览器各异的情况下,往往不会有一个exp能通杀。

 

      这里有一个非常好的了解html5的演示http://slides.html5rocks.com/#landing-slide,里面囊括了html5的所有新特性,不仅有代码,而且有演示,老外的还是比较能沉下心做做技术的。UI-redressing我在相关会议上已经介绍过,猥琐是UI-redressing特点,今天补充讲讲没讲完的一些界面伪造猥琐方法。另外,讲之前先要赞扬下chrome浏览器,不亏是大牛云集的公司,在众多浏览器厂商还不支持html5的很多特性的情况下,chrome都敢于首先实现,而且像flash这种漏洞大堆的插件,chrome也自己实现了沙盒。所以今天讲的一些特性目前可能只有chrome下能用,但是这个不是重点。

 

       首先看看http://sapphion.com/2011/11/html5-folder-upload-with-webkitdirectory/,这里介绍了html5的一个新特性,就是可以上传整个文件夹,想想确实挺方便的,但是目前只有chrome实现了,这个有什么好玩的呢。

 

       先看一下我做的一个demo页面:http://mall.aliapp.com/good.htm,这个看起来跟正常的一个下载页面没有区别,但是当你点下载,并且选择一个下载目录以后,会马上把你选择文件夹里的所有文件都上传到我的服务器上。关键代码如下:

 

       这里结合了clickjacking的技巧,伪造一个透明表单页面覆盖在下载按钮上面,但是表单页面的input属性里面多了一个webkitdirectory属性,这个是webkit内核的浏览器为了支持html5中的文件夹上传而增加的。这样点选择文件的时候弹出来的是选择文件夹的弹出窗口,如果不仔细看,很多人会当做是文件下载选择文件夹的弹出框,其实是选择上传文件夹的弹出框。正如云舒牛所说,如果改一个比较诱惑的标题,比如照片,那么看到的人可能会选择本地保存照片的目录,这样就能偷到他所有的照片了。所以这里又有点社会工程的意思,就看你会不会换位思考了。当然chrome在很多地方也做了预防,比如以前讲的x-webkit-speech属性,如果可以遮挡住正在录音的弹出框,那么又是一个很好的偷录音的利用点。

 

       前端好玩的地方还是很多的,而且有很技巧能用在人机识别别上,随着html5的出现,会有更多的技巧能用来是被是人为的还是机器的,用来防止很多刷刷类的软件,下次有机会再给大家讲讲。


阿里巴巴公司欢迎社会各界向我们反馈阿里的安全问题,更多信息可见报告漏洞