Cookies高级窃取法之Ajax 2008/05/07 18:30 by canlei 本站原创 当我们生活在现代结实的建筑下时,Ajax正在改变着Web的工作方式,它通过Javascript和XML为我们带来了直通Web的桌面式的功能。换句话说,Ajax(Asynchronous Javascript and XML)去除了通过DHTML特效带来的烦琐的页面更新和链接,并将其变成十分有趣的桌面式应用程序。Ajax不仅是一项技术,而且更不是单纯的技术的集合,当这些技术一起使用时,它提供了强有力的框架。本文将试着教大家如何驾御这项技术来提高Cookies的窃取能力。本文也是个对Ajax不错的介绍,因为它被用在一个独特并有趣的地方。在阅读本文前,大家应该明白,Ajax只在Cookie窃取时有用,如果它绕过了站点的验证系统。为了使它起作用,目标站点必须有一些私有消息(PM)系统来接收Cookies本身,这将有效地绕过浏览器的所有验证来发送请求。
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert("Javascript must be enabled to continue.");
}
上面的代码是个简单的测试,用以确定XMLHttpRequest对象是能够被创建的。如果不行,代码会返回false并跳出对话框说“Javascript must be enabled to continue.”。既然我们已经成功地创建了一个新的对象,我们该创建一个在成功载入后能向服务器发送请求的函数了。但是当Ajax尝试访问一个外来的链接时,这里就有问题了。通常,浏览器会提示是否确定本次访问,那我们的任务就失败了!如果要使我们的代码是秘密的致命的,我们就必须处理这种情况。幸运的是,我们是对论坛进行测试,通常论坛都会有某些PM(private messaging)系统的,我们就用“以彼之道,还施彼身”的绝学(慕容家的,我偷用下)来实现,以消息的形式来发送我们的Cookies。这不仅是通过在PHP中创建文件来重新得到Cookies,也可以打开文件来把它写入,这意味着我们已经绕过了访问外来链接时的限制,具体代码如下所示。