欢迎来到天天文库
浏览记录
ID:20725098
大小:69.00 KB
页数:7页
时间:2018-10-15
《精通javascript攻击框架:attackapi(上)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、精通JavaScript攻击框架:AttackAPI(上)~教育资源库 多年来客户端安全一直未引起人们的足够重视,但是如今情况发生了急剧转变,客户端安全已经成为信息安全领域的焦点之一。ozillaRhino。它的目标是为实现漏洞利用而提供一个简单易用的接口,主要用于测试和验证之用。 在开始研究AttackAPI子程序之前,我们先来做一些准备工作。首先,下载该库,然后搭设一个测试环境,我们将在这个环境中开发大部分示例程序。为此,我们需要安装、运行以下应用程序: 支持PHP4.x或者更新的版本
2、的HTTP服务器(Apache+PHP或者AppServ) .apache.org/ .php. .appserv,这个文件中包含了下面我们将用到的一些元素。因为我们不会对打开的页面的HTML内容做任何修改,所以打开Firebug,并调整控制台使其扩展至整个屏幕。 确保位于Console选项卡中,并输入命令:dir(AttackAPI)。如果一切正常的话,就会看到如图2所示的AttackAPI文档对象模型(DOM)结构。 图2 在本文剩下部分中,我们将使用$A对象而不是AttackA
3、PI来访问和调用库对象和方法。$A对象是AttackAPI的一个独立的实例,并且包含更易使用的AttackAPI方法的快捷方式。AttackAPI是一个结构化程度很高的库,通过图2可以看出,它还进一步分为AttackAPI.core(库核心)、AttackAPI.dom(跨浏览器的方法)和AttackAPI.utils(跨解释器的方法)。通过使用上面所说的约定,AttackAPI的base64编码函数的完整路径为$A.encodeBase64,是不是非常简洁呀?!这样输入代码的时候是不是省力气了
4、,所以说,懒惰是促进人类进步的主要动力之一。 由于我们需要输入的代码较多,所以建议使用更大的命令行,首先在选项下拉菜单中选择更大的命令行选项,如同图3所示。 图3 这时命令行会出现在窗口的右侧,如下图所示: 图4 因为我们要键入许多代码,所以难免出现输入错误。所以打开更大的命令行之后,改起来会更快、更好。 需要注意的是,我们可以使用LoadAttackAPI书签将AttackAPI加载到选择的页面上,尤其是当我们需要为某个站点开发利用程序,但是又不想通过Firebug修改该页面的源代
5、码或者插入脚本标签的时候格外有用。该bookmarklet可以是从.gnucitizen.org/projects/load-attackapi1234下一页友情提醒:,特别!-bookmarklet下载。现在开始研究AttackAPI的客户端踩点功能。 二、客户端踩点 攻击者一旦控制了受害者的浏览器,他们首先要做的第一件事情就是弄清楚他们俘获的到底是什么样的客户端和平台。为达到这一目的,他们只需在Firebug的命令行中输入下列命令便可: console.log($A.getAgent(
6、)); console.log($A.getPlatform()); 命令行窗口下方的运行按钮,就会看到这两个函数的执行结果,如下图所示: 图5 如您所见,浏览器类型和操作系统版本已经展现在我们眼前了事情就是这么简单! 然而,攻击者能做的事情远不止这些。在Firebug的命令行下输入如下所示的两行命令: console.dir($A.getCookies()); console.dir($A.getPlugins()); 命令行窗口下方的运行按钮,就会看到这两个函数的执行结果,如
7、下图所示: 图6 GetCookies函数会检索出所有可用的Cookie,注意,这里的getCookies函数是一个易于使用的JavaScript对象,这样我们就无需对DOM对象ument.cookie进行手动解析了。与getCookies函数类似,getPlugins函数会列出目前已经安装的所有浏览器插件;这个函数能够运行在大多数浏览器上,但是InterExplorer(IE)除外。 这里需要注意,如果客户端使用的是IE的话,AttackAPI能够访问存储在剪贴板中的数据:我们可以使用A
8、ttackAPI.dom.getClipboard来读取剪贴板,并能使用AttackAPI.dom.setClipboard函数来设置剪贴板。通常情况下,剪贴板会保存有攻击者感兴趣的内容,例如用户有时候会复制粘贴他们的密码。通过使用这项功能,攻击者可以很轻松地窃取剪贴板中的数据,进而利用这些数据来控制用户帐户。 我们知道,攻击者可以攻击位于局域网内部的设备。为此,他们必须具有对局域网内部结构有一个很好的了解才行,对内部网络图范围更应该有一个详细的了解。他们可以做出以下假设,家庭用户的地址范围为
此文档下载收益归作者所有