Firefox爱好者

提供Mozilla Firefox火狐浏览器下载、扩展、插件、使用技巧以及Firefox中文版的最新资讯。

« 连载:使用 Firefox攻击Web2.0应用(一)连载:使用 Firefox攻击Web2.0应用(三) »

连载:使用 Firefox攻击Web2.0应用(二)

三、Web2.0安全评估面临的挑战

在Web2.0这个异步的框架中,Web应用不再需要以前那么频繁的页面刷新和重定向,这样,一些原本能够被利用的服务器资源被隐藏了起来。以下是安全研究人员在理解Web2.0应用时面临的三个重要的挑战:

(1)发现隐藏的调用:当浏览器载入的页面的XHR调用发生时,如何能够及时准确地发现它,是很大的挑战。

(2)网络爬虫问题:传统的网络爬虫应用无法应付浏览器中页面的所有行为,当页面通过JavaScript调用XHR对象从服务器获得资源时,传统的网络爬虫无法抓取到这些资源。

(3)调用逻辑发现:Web2.0的应用通过JavaScript加载,对一个特定的事件,很难分离出它的调用逻辑,因为每个html页面都会从服务器加载三到四个JavaScript脚本文件,每个JavaScript文件里又有很多函数,而当一个事件发生的时候,很难去判断是哪些JavaScript文件中的哪些函数被调用。

我们需要研究出一套方法和工具,在Web应用安全评估中克服以上障碍。这篇文章的目的,正是介绍如何使用Firefox浏览器及其一些插件,来应对上述挑战。

3.1发现隐藏的调用

Web2.0的应用可能只从服务器下载一个页面,但通过几次XHR对象调用,来构建最终的页面。这些XHR调用异步的从服务器下载资源或者JavaScript脚本。这样,我们面临的挑战就是如何判断发生的XHR调用和识别从服务器下载的资源。这些资源可以帮助安全研究人员发现安全漏洞。让我们从一个简单的例子开始。

假设我们可以通过访问站点hxxp://example.com/news.aspx ,来了解当天的商业新闻。页面的截图如图2所示。

图2 一个简单的新闻显示页面

作为一个Web2.0的应用,Ajax调用通过XHR对象被发往服务器。我们可以通过一个工具Firebug来识别所有的XHR对象调用。Firebug是Firefox浏览器的一个插件,在用户浏览一个页面之前,先把“Show XMLHttpRequests”选项选中,如图3所示。

图3 配置Firebug记录XMLHttpRequests调用

启用截获XMLHttpRequest调用的选项后,我们再次浏览这个页面,这时页面向服务器发送的所有XHR对象调用都会被Firebug发现并记录下来,具体如图4所示。

图4 记录Ajax调用

我们观察图4中的“Ajax Calls”,可以看到浏览器通过XHR发送的一些请求,从服务器下载dojo Ajax框架,与此同时,向服务器发送一个调用,获取新闻文章的内容。

如果我们仔细查看代码,可以发现如下JavaScript代码:

function getNews()
{
var http;
http = new XMLHttpRequest();
http.open("GET", " getnews.aspx?date=09262006", true);
http.onreadystatechange = function()
{
if (http.readyState == 4) {
    var response = http.responseText;
    document.getElementById('result').innerHTML = response;
        }
}
http.send(null);
}

上述代码发送一个异步的调用访问Web服务器,企图获取的资源是:

getnews.aspx?date=09262006

这个aspx页面经过编译后传给客户端浏览器。其代码放在ID为result的标签所在处。这是一个典型的使用XHR对象进行的Ajax调用的例子。

通过借助Firebug进行分析,我们可以记录一个页面所有XHR对象调用,从而发现有安全漏洞的内部URL、查询字符串和POST请求。仍然以上面的代码为例,参数date的值如果处理不当,就可能存在SQL注入漏洞。

3.2网络爬虫问题及浏览器仿真

在评估一个Web应用安全性时,一个重要的工具是网络爬虫。网络爬虫功能是爬下该Web应用中的每个网页,搜集其中的链接。但是在Web2.0的应用中,这些链接往往都指向JavaScript函数,再由JavaScript函数通过XHR对象调用新的页面内容,这时,网络爬虫会丢失这些信息。例如,下面是一个简单链接的集合。

<a href="#" onclick="getMe(); return false;">go1</a><br>
<a href="/hi.html">go2</a><br>
<a href="#" onclick="getMe(); return false;">go3</a><br>

“go1”链接被点击时,getMe()函数被执行,getMe()函数的代码如下所示。这个函数可能在一个单独的JavaScript文件中实现。

function getMe()
{
var http;
http = new XMLHttpRequest();
http.open("GET", "hi.html", true);
http.onreadystatechange = function()
{
    if (http.readyState == 4) {
    var response = http.responseText;
    document.getElementById('result').innerHTML = response;
    }
  }
http.send(null);
}

上面的代码执行后,发送一个HTTP Get请求,访问服务器上的资源hi.html。

可否使用自动化机制仿真这个点击链接的操作呢?Firefox插件Chickenfoot为我们实现了这个功能,它提供了基于JavaScript的API,扩展了浏览器的可编程接口。

使用Chickenfoot这款插件,可以自己编写简单的JavaScript代码来使得浏览器的行为自动化。使用这种方法,像爬虫抓取网页这样简单的任务就可以自动完成了。例如下面的示例代码,可以模拟点击事件把网页上所有连接都点击一遍。这款插件与传统的网络爬虫相比,优势显而易见:所有这些onClick事件都会产生一个XHR调用,而这些响应会被传统的网络爬虫忽略,传统的爬虫只能试图去分析JavaScript代码,搜集可能的链接,但这并不能取代实际onClick事件的响应。

l=find('link')
for(i=0;i<l.count;i++){
a = document.links[i];
test = a.onclick;
if(!(test== null)){
var e = document.createEvent('MouseEvents');
e.initMouseEvent('click',true,true,document.defaultView,1,0,0,0,
0,false,false,false,false,0,null);
a.dispatchEvent(e);
}
}

读者可以把这段脚本加载到Chickenfoot控制台,然后运行。结果如图5所示。

图5 使用Chickenfoot仿真onclick事件

这种方法,可以创建JavaScript脚本,在Firefox浏览器内部评估基于Ajax的Web应用的安全性。(责任编辑:李磊)

此文来源:赛迪网

  • quote 2.升降机
  • http://www.jiyangheli.com/
  • 中国专业生产液压升降机升降机等产品最大的厂家,同行业首家取得国家生产许可证,通过ISO9001:2000认证,全部产品经过特殊设备检测站检测,产品有:升降机 ,剪叉式液压升降平台、铝合金式升降机、固定式 745221343
  • 2008-5-19 3:31:13 回复该留言
  • quote 4.wssag
  • http://www.h863.com
  • 人民网、雅虎网发表的最新评论,关于健康的网站包括:三九健康、南方网、39健康。其中健康网有关健康。
    亚健康属于非疾病状态,要摆脱亚健康状态,要靠自己主动预防。
    职业咨询可以为你解决职业发展中的困惑,心理诊所可以解决心理上的问题,而心理咨询提供通俗易懂的心理辅导,通过心理咨询师。 137592445
  • 2008-6-18 4:17:30 回复该留言
  • quote 7.expensive
  • http://www.bestbuynike.com
  • air jordans 23 is black air jordans,air jordans on sale is more expensive,air jordansis not only for man but also have women's air jordans and baby air jordans. clear air jordans is very simple.history of air jordans has a long time.
    nike men's shox flight lifted basketball shoe,thenike shoesis accept by young man.nike shoes is very Light.but the women like nike shoes.
    I like jordan shoes,jordan retro shoes and new jordan shoes.There are many jordan shoesin the Shops.micheal jordan shoes including jordan 23 shoes are very popular. 188388491
  • 2008-6-20 5:37:15 回复该留言
  • quote 8.cheongsam
  • http://www.prettyladygirl.com/
  • white cheongsam and black cheongsam all buy cheongsam.newcheongsamis beauty.plus size cheongsam,male cheongsam and chinese cheongsam dress are blue cheongsam.
    chinese cheongsam wholesale hava wedding cheongsam.we can buy silk cheongsam wholesale forcheongsam wholesaleand cheongsam shoes.by cheongsam wholesale.
    duke study in china,simon alsostudy in china.They are study in china,we allstudy in china. 953105201
  • 2008-6-21 16:47:51 回复该留言
  • quote 9.trade
  • http://www.biztrademarket.com
  • we find international trade jobs or international trade law.In international trade center,theinternational tradeis very international trade statistics
    china trade surplus is a china trade show.china world trade is a free tradechina trade.china free trade including us china trade deficit or china trade shows.
    foreign trade statistics and foreign trade policy is studied by census gov foreign trade.the foreign trade go to census gov foreign trade schedules b search. 42662189
  • 2008-6-22 14:02:26 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.7 Laputa Build 70216

Copyright 2007 FireFoxFans.Com. All Rights Reserved.
  浙ICP备07006558号