机缘巧合,最近接触了一款开源的web安全工具OWASP ZAP,着实眼前一亮。操作简单易用、功能齐全、插件种类丰富,具备代理、数据截断、扫描、主动攻击、爬虫、fuzzing、渗透测试等多样的安全测试功能,相比于商业版的Burp Suite和AppScan工具,OWASP ZAP不乏为一款不错的商用版替代工具,也是安全人员入门的极佳体验工具。本文将根据OWASP ZAP工具特性,分别将其与Burp Suite、AppScan工具进行对比,来感受该工具的强大功能。
OWASP ZAP(全称OWASP Zed Attack Proxy)是由全球性安全组织OWASP推出并定期维护更新的一款开源工具,ZAP专为测试Web应用程序而设计,并且既灵活又可扩展,它是以架设代理的形式来实现渗透性测试,他将自己置于用户浏览器和服务器中间,充当一个中间人的角色,浏览器所有与服务器的交互都要经过ZAP,这样ZAP就可以获得所有这些交互的信息,并且可以对他们进行分析、扫描、甚至是改包再发送。
首先通过下表直观对比下三款工具对于常用功能的具备情况:
相信小伙伴们看完表格也会不禁感叹一下OWASP ZAP工具的功能之齐全。Burp Suite主要依托于其强大的插件集成,擅长于通过拦截、修改、重放数据包方式挖掘漏洞,Appscan Srandard为一款安全扫描工具,可自动化检测目标网站的漏洞情况,扫描功能完善且漏洞挖掘能力较强、漏洞处理建议完备。前两者均为商业型工具,ZAP则结合了二者的特性,依托OWASP组织强大的实力背景,逐步演变成了一款功能齐全、开放性的工具。接下来,针对不同特性,将ZAP分别与这两款工具进行功能对比。
一、OWASP ZAP与Burp Suite
1. 工作空间保存
Burp Suite支持临时保存项目、新建项目、打开已存项目三种方式,可对工作空间进行管理。
ZAP通过保存会话的方式同样可以选择将测试过程中所有内容进行留存。
2. 基础页面
Burp Suite页面分为多个页签,其中Target页面中①陈列出捕获到的站点目录,②展示某个站点抓取到的流量数据,选中某个数据后在③中显示其请求和响应报文,④展示被动扫描发现的缺陷,⑤为缺陷具体详情。
ZAP页面除常规的菜单栏、工具栏外,①陈列出捕获到的站点目录,②③为选中的某条数据的请求或响应报文(分页显示报文头和报文内容),④实时展现捕获的数据流量,⑤展示工具的执行状态以及警告的汇总。
3. 代理设置
Burp Suite中的Proxy模块作为其核心功能,拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许拦截、查看、修改在两个方向上的原始数据流。
ZAP同样采用架设代理的方式,其代理配置在设置的Local Proxies中,默认设置为127.0.0.1:8080。
4. 请求与响应
Burp Suite中Target模块可展示所有抓取的流量数据的请求和响应报文,并分页签显示。
ZAP中同样可展示所有数据流量的请求和响应报文,并且可选择多样式视图。
5. 报文截断
Burp Suite具备对报文拦截、查看、修改等多种操作,使用上灵活方便,算是工具最出彩的一部分功能。
ZAP同样具备报文的查看、截断、修改等功能,但截断再发送后等待的响应时间稍微较长,整体不如Burp Suite敏捷。
6. 暴力破解
Burp Suite的爆破功能在Intruder页签中完成,这部分可实现定制化的功能,通过添加payload(XSS,SQLI等等)来实现一个自动化的攻击或是密码爆破。
ZAP的爆破是在Fuzzer中实现,同样可对选定参数添加定制化的字典进行大量的攻击操作,并且Fuzzer中自带了许多漏洞的payload。
7. 编码和解码
Burp Suite中Decoder页签可对报文内容进行编码和解码,支持多种加解密方式。
ZAP中通过选中需要字段,然后右键选择编解码可对报文中内容记性编码、解码、哈希操作。
以上是Burp Suite工具比较具有代表性的功能,并且Burp Suite和ZAP同样含有丰富的插件,并提供API,开发者可定制自己的程序。对于漏洞扫描,这三个工具都具备自动化的扫描功能,但是Burp Suite的扫描功能目前不如Appscan全面,因此接下来将主要对比下ZAP与Appscan的扫描功能情况。
二、OWASP ZAP与AppScan Standard
1. 爬虫
Appscan中将爬虫操作称为"探索",利用网页发送和返回的内容都是统一的语言 HTML,通过对 HTML 语言进行分析,找到里面的参数和链接,记录并继续发送之,进而对网站结构进行爬取。
ZAP中支持两种爬虫方式,一个是传统的爬虫技术,另一种是ajax爬虫。ajax技术是通过JavaScript来生成链接,ZAP的ajax爬虫通过唤起浏览器进程来探索Web应用,并且会追踪动态生成的链接。
2. 策略配置
Appscan支持全面的扫描配置,针对不同的扫描目标,可配置不同的扫描策略、测试策略。
ZAP可根据情况自定义扫描策略,策略中包含报警阀值和攻击强度两个参数,且可以分别对信息收集、客户端浏览器、服务器安全、杂项、注入等多各方面分别进行配置。
3. 扫描
"扫描规则库"、"探索"、"测试"构成了AppScan的核心三要素。ZAP支持自动扫描和手动扫描两种测试方式,并提供Appscan(Web应用)和外部设备/客户机(Appscan作为记录代理)两种探索方式。
ZAP支持主动扫描和被动扫描两种方式,可根据测试目标情况,选取相应的测试方式。被动扫描可对所有以代理形式接收到的请求和响应报文进行自动检测,它不会以任何形式改动任何反馈信息,可以提供一些基础的Web安全性信息。主动扫描提供自动扫描和手动扫描两种方式,会通过一些预设的攻击来达到发现更多漏洞的目的,对于被测目标而言,主动扫描会发起真实的、可能造成损失的攻击。
下图为两个工具实时记录扫描进度和扫描内容。
4. 扫描结果查看
Appscan工具提供完备的漏洞详情,包括漏洞类型、数量、涉及的URL、在报文的具体位置、问题详情、修订建议等,可方便使用者确认漏洞是否真实存在。
ZAP工具在alert(警报)页签展示漏洞详情。所有风险项可以展开,ZAP在右侧窗口会对该风险项提供说明和解释,并且在右上部response区域高亮展示具体风险项由来(从响应中分析得出的)。
5. 重放
重放操作是确认漏洞是否报告有误的有效方式,Appscan可对检测的漏洞再次进行手动测试。
ZAP基本具备和Appscan相同结构的重放功能,并且可对报文进行编辑。
综上可看出,OWASP ZAP工具基本具备Burp Suite和Appscan的主要安全测试功能,但其自身也存在多处不足的地方,相比于Burp Suite,其抓包、改包等渗透测试功能上操作不如Burp Suite灵活多样;相对于Appscan,其扫描更为轻量,即操作便捷、扫描迅速,然而漏洞挖掘情况不如Appscan更深层,但这一点儿也不影响人们对它的青睐,OWASP ZAP基本可以满足安全测试所需的功能,并且作为一款免费的开源工具,对于学生党或者安全入门人员绝对是一个不错的选择。