dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>安全技术>文章内容
经典:Web2.0客户端组件漏洞扫描(一)
来源:赛迪网 作者:Kevin

一、介绍

Web2.0 是几项技术的综合应用的结果,这些技术有:AJAX(Asynchronous JavaScript and XML),Flash, JSON(JavaScript Object Notation),SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)等。这些技术加上跨域的信息访问(Cross-Site Access)。它们共同支持了Web2.0这项复杂的应用。随着Web2.0应用的逐渐广泛,有目共睹的一个变化是终端用户浏览器的功能逐渐强大。

这些变化给传统扫描工具和信息安全研究人员带来了新的挑战。这篇文章的目标是研究以下内容:

(1)新一代Web应用中扫描的复杂性和挑战;

(2)Web2.0客户端扫描对象和方法;

(3)Web2.0漏洞检测(RSS feeds中的跨站脚本攻击);

(4)使用JSON进行跨域注入;

(5)客户端浏览器过滤的防御对策;

二、Web2.0 扫描的复杂性

Web2.0应用异常复杂,这给扫描技术带来了新的挑战。它的复杂性可以归为以下几个因素:

丰富的客户端接口:AJAX和Flash利用复杂的Java Scripts和Action scripts脚本,提供了丰富的应用接口,使得从这些脚本中发现应用逻辑和关键资源变得异常困难。

信息来源:有些Web2.0应用整合了许多不同站点的信息,信息资源复杂。例如一个应用可以整合不同站点的RSS feeds或者博客资源,在一个站点建立一个大的信息库,或者利用不同来源的数据资源建立自己的Mashup。

数据结构:不同应用之间交换数据使用的数据结构多样,可以是XML,JSON,JavaScript数组等。

协议:除了简单的HTTP Get和Post,Web2.0应用可以选择其他不同的协议,例如,SOAP,REST和XML-RPC。

我们应用的目标,可以是从不同的站点获得RSS feeds,利用JSON在不同的博客站点之间交换数据,使用SOAP与证券交易所的Web Service进行通信等。所有这些服务都要使用AJAX技术,以RIA(Rich Internet Applications)的形式进行。

三、Web2.0应用的扫描技术面临的挑战

针对Web2.0应用的扫描技术面临的挑战,可以分为以下两个方面:

1.扫描服务端应用组件:当扫描Web2.0应用时,面临的最大挑战,就是获得服务器中的资源。当扫描传统的WEB应用时,可以运行一个网络爬虫,通过寻找“href”的方式,即可知道一个Web应用有哪些页面资源。但是在Web2.0的应用环境下,实现扫描,需要识别后端的网络应用,第三方的Mashup,后端的代理服务等。

2.扫描客户端组件:一个Web2.0应用,需要在浏览器中加载一些Java Scripts脚本,Flash组件和其他的一些小程序。这些组件和脚本利用XMLHTTPRequest对象同后方的WEB服务器进行通信,同时,在浏览器内部获得跨域信息也是可能的。由于Web2.0框架使用了多种客户端脚本,从不可信的第三方获得资源,这使得跨站脚本攻击(XSS)成为应用程序使用者面临的潜在威胁。AJAX,JSON技术,跨域访问和动态DOM操作技术被增加到传统的跨站脚本攻击(XSS)方法中,使得客户端组件的安全威胁大大增加。客户端组件扫描和漏洞检测是本文讨论的重点。

四、客户端扫描对象

为了能清楚的理解扫描对象,我们先举一个简单例子来说明一个WEB应用是如何部署的:如图1所示,一个Web应用运行在example.com上。客户通过浏览器访问这个应用。这个Web应用根据其使用和逻辑,分成以下几个部分:

图1 Web 2.0 应用部署

应用资源:这些资源被example.com解释成各种形式,例如,HTML,ASP/JSP和Web Services。这些资源在信任域内,被example.com所拥有。

Feed代理:XMLHTTPRequest不能对后端服务器进行跨域访问。因此,需要建立一个代理服务器,通过代理服务器访问第三方的RSS feeds,例如,假设这个feeds是“每日新闻”,那么example.com的用户也可以获得“每日新闻”这项资讯。

博客访问:终端用户通过访问example.com可以获得因特网上的博客资源,这是因为example.com在用户的浏览器上下载了一些脚本,允许用户访问一些跨域博客。

以下是四个关键的扫描对象,来决定客户端是否存在漏洞:

1.函数库指纹:Web2.0应用是由AJAX和Flash函数库创建和支持的,这些函数库被加载到用户浏览器,以供程序运行时使用。所以,有必要提取这些函数库的指纹,和已经公布的漏洞库中的数据进行比对,例如,假设某个用户浏览器下载的某个库函数存在漏洞,并被记录在公布的漏洞库中,那么通过指纹比对可以发现这个有潜在威胁的库函数。

2.第三方不可信的信息点:在图1中,我们把Web应用划分成可信和不可信两部分。不可信的信息在加载到用户浏览器之前要进行安全扫描。图1的例子中,RSS feeds是通过应用服务器的Feed代理到达用户浏览器的,而博客信息则是直接进入用户浏览器,信息进入浏览器后都以DOM(文档对象模型)的形式存在。如果在这些信息进入用户浏览器之前,进行安全扫描,则可以避免一些安全威胁。

3.DOM访问点:由于浏览器中任何东西都以DOM的形式运行,加载的Java Scripts脚本也是来操作DOM的,所以,恶意信息在任何一个DOM访问点进入,都会对浏览器造成威胁。因此,DOM的访问点的安全扫描也至关重要。

4.利用函数和变量的漏洞检测:为了发现威胁和漏洞,需要对浏览器的运行逻辑和相应的轨迹有深入的理解,这样,一旦DOM访问点和第三方信息被识别出来,能够及时发现调用的函数,进行安全扫描。


共3页: 上一页 1 [2] [3] 下一页
上一篇:QQ盗号木马干掉杀毒软件仿冒正常QQ窗口   下一篇:经典:Web2.0客户端组件漏洞扫描(二)
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·世界第一黑客提出计算机安全十大
·教你如何进入有密码的WindowsXP
·Windows NT/2K/XP系统下获取管理
·网站入侵10大隐患
·学会在Linux下对硬盘分区
·找回Redhat的超级用户密码
·推荐:ASPX一句话木马--终极版&详
·Cisco路由器安全配置方案
·永远不怕IE主页被修改
·手动杀熊猫.威金变种等经验
·加强边界路由器安全防护能力的9
·木马藏身的地方
  相关文章
·QQ盗号木马干掉杀毒软件仿冒正常
·经典:Web2.0客户端组件漏洞扫描
·垃圾邮件伪装马尾辫女生 美女图
·防范ARP地址欺骗类病毒
·利用注销脚本自动清除上网痕迹
·小心三类危险的“TXT”文件
·上半年因特网安全调查
·谁是企业安全最大的敌人?
·一个简单的木马原型基础代码
·C#抽象工厂模式的几种实现方法及
·企业内部FTP服务器
·木马藏身的地方
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763