利用Firefox审计Web2.0应用程序安全
2009-09-16 00:00:00 来源:WEB开发网在许多情形下,模拟这个环境将变得非常困难。比如,下面是一组简单的链接:
go1
go2
go3
单击链接go1的时候,就会执行getMe()函数,这个函数的代码如下所示。 需要注意的是,这个函数也可以放在一个单独的文件中。
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);
}
上述代码对在服务器上的资源hi.html进行了一个简单的Ajax调用。
那么,我们能够自动模拟这个单击吗?答案是肯定的。一个方法就是使用Firefox插件Chickenfoot,这个插件提供了基于JavaScript的应用程序接口,从而为浏览器提供了一个可编程接口。
通过此Chickenfoot插件,您可以编写简单的JavaScript代码来自动发出浏览器动作。使用该方法,就可以轻松完成爬行web页面之类的简单任务的自动化。举例来说,以下简单脚本将利用onclick事件来“单击”所有的锚。与传统的web爬虫相比,这个插件的优点是所有这些 onclick事件都是由后端基于XHR的Ajax调用发出的;而这些Ajax调用是会被网络爬虫所遗漏的,因为网络爬虫会试图解析JavaScript 并且收集可能的链接,却无法替换实际的onclick事件。
l=find('link')
for(i=0;i< PRE>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); }
}
更多精彩
赞助商链接