当攻击Web应用程序时,除基本的Web浏览器外,工具包中最有用的工具为拦截代理服务器。在Web应用程序发展的早期,拦截代理服务器是一种独立的工具,它提供最基本的功能,Achilles代理服务器是尤其受推崇的一种,它显示每一个请求与响应,以方便对其进行编辑。虽然这款工具极其简单,存在许多缺陷,而且使用起来也不方便,但经验丰富的攻击者仍然可以利用它攻破 许多Web应用程序。
近年来,这款简单的拦截代理服务器已经发展成为许多功能强大的工具套件,包含几种相互补充的工具,能够完成攻击Web应用程序过程中的常见任务。Web应用程序安全测试仪常用的测试套件如下所示:
Burp Suite
WebScarab
Paros
Zed Attack Proxy
Andiparos
Fiddler
CAT
Charles
这些工具包的功能各不相同,其中一些相对较新,并更具实验性。单纯就功能而言,Burp Suite是其中最为复杂全面的工具。当前,它是唯一包含以下几节介绍的所有功能的工具包。在某种程度上,选择使用哪些工具因个人喜好而异。我们建议没有任何喜好的测试员在现实应用中先选择几种套件,然后确定哪些工具最适合自己的需求。
本节介绍这些工具的工作原理,并说明在测试Web应用程序时充分利用这些工具的常用工作流程。
上述每一种集成测试套件都由几种相互补充的工具组成,它们共享与目标应用程序有关的信息。通常,攻击者通过浏览器以正常方式攻击应用程序,这些工具监控生成的请求与响应,保存所有与目标应用程序有关的信息,并提供大量有用的功能。每一种套件由以下核心组件构成:
拦截代理服务器
Web应用程序爬虫
自定义Web应用程序漏洞测试器
漏洞扫描器
手动请求工具
分析会话cookie与其他令牌的工具
各种共享功能与实用工具
1.拦截代理服务器
拦截代理服务器是工具套件的核心,至今仍然是最基本的组件。要使用拦截代理服务器,必须配置浏览器,将它的代理服务器作为本地机器上的一个端口。同时配置代理工具监听这个端口,并接收由浏览器发布的所有请求。由于代理服务器能够访问浏览器与目标Web服务器之间的双向通信,因而它能够拦截它们之间传送的每一条消息,以方便用户审查和修改,并执行其他有用的 功能,如图20-2所示。
图20-2 使用拦截代理服务器动态处理HTTP请求
配置浏览器
浏览器的配置过程相当简单。首先,确定拦截代理服务器默认使用哪一个本地端口监听连接(通常为8080端口),然后在浏览器上执行以下步骤。
在Internet Explorer中,选择“工具”→“Internet选项”→“连接”→“局域网设置”。确保没有选中“自动检测设置”与“使用自动配置脚本”复选框。确保选中“为LAN使用代理服务器”复选框。在“地址”栏中输入127.0.0.1;在“端口”栏中输入代理服务器使用的端口。单击“高级”按钮,确保选中“对所有协议均使用相同的代理服务器”复选框。如果所攻击的主机名称与“对于以下列字符开头的地址不使用代理服务器”框中的任何一个表达式相匹配,删除这些表达式。在所有对话框上单击“确定”按钮,确认重新配置。
在Firefox中,选择“工具”→“选项”→“高级”,选择“网络”选项卡,单击“连接”栏的“设置”按钮,确保选中“手动配置代理”选项。在“代理”栏中输入127.0.0.1;在“端口”栏中输入代理服务器使用的端口。如果所攻击的主机名称与“不使用代理”框中的任何一个表达式相匹配,删除这些表达式。在所有对话框上单击“确定”按钮,确认重新配置。
Chrome使用其所在的操作系统附带的本地浏览器的代理设置。在Chrome中,可以通过选择“选项”→“高级选项”→“网络”→“更改代理设置”访问这些设置。