ZAP
OWASP ZAP,全称:OWASP Zed Attack Proxy攻击代理服务器是世界上最受欢迎的免费安全工具之一。ZAP可以帮助我们在开发和测试应用程序过程中,自动发现 Web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。
OWASP
OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。其使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。目前OWASP全球拥有220个分部近六万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。
OWASP 颁布并且定期维护更新的web安全漏洞TOP 10,也成为了web安全性领域的权威指导标准,同时也是IBM APPSCAN、HP WEBINSPECT等扫描器漏洞参考的主要标准。
ZAP的工作原理
在安全性测试领域,安全性测试主要可以由以下几种测试策略来覆盖:
-
- 漏洞分析 - 对系统进行扫描来发现其安全性隐患
- 渗透测试 - 对系统进行模拟攻击和分析来确定其安全性漏洞
- 运行时测试 - 终端用户对系统进行分析和安全性测试(手工安全性测试分析)
- 代码审计 - 通过代码审计分析评估安全性风险(静态测试,评审)
ZAP主要是用于应用上述的第二种测试,即渗透性测试。
ZAP以架设代理的形式来实现渗透性测试,类似于fiddler抓包机制。他将自己置于用户浏览器和服务器中间,充当一个中间人的角色,浏览器所有与服务器的交互都要经过ZAP,这样ZAP就可以获得所有这些交互的信息,并且可以对他们进行分析、扫描,甚至是改包再发送。
下载地址:github: https://github.com/zaproxy/zaproxy/wiki/Downloads
现在的稳定版本是2.7.0版,推荐下载windows64位安装包来初试安全性扫描机制。KALI系统已经自带
初步使用ZAP
初次打开ZAP时,会看到以下对话框,询问是否要保持ZAP进程。
保存进程则可以让你的操作得到保留,下次只要打开历史进程就可以取到之前扫描过的站点以及测试结果等。
一般来说,如果对固定的产品做定期扫描,应该保存一个进程做为长期使用,选第一或者第二个选项都可以。
如果只是想先简单尝试ZAP功能,可以选择第三个选项,那么当前进程暂时不会被保存。
打开ZAP以后看到的是如下界面:
如果是对某个网站检测,输入网址,点击‘Attack’,搞定,so easy。。
在快速攻击过程中,ZAP做了以下几件事:
- 使用爬虫抓取被测站点的所有页面
- 在页面抓取的过程中被动扫描所有获得的页面
- 抓取完毕后用主动扫描的方式分析页面,功能和参数
结果分析:
等待上述快速测试完成以后,我们就可以拿到ZAP提供的测试结果进行分析。
快速测试中,ZAP会产出以下一些产物:
- 被测站点地图及页面资源
- 所有请求、反馈记录
- 安全性风险项目列表
其中我们最关注的当然是安全性风险项,ZAP将做出以下标识:
由上到下分别为:高、中、低、信息、通过
在窗口最底部,切换到Alert界面,可以看到所有扫描出的安全性风险:
其中的所有风险项可以展开,ZAP在右侧窗口会对该风险项提供说明和解释,并且在右上部response区域高亮展示具体风险项由来(从反馈中分析得出的)。
如果只是简单的安全性测试需求,或者只是为了学习安全性测试知识,到这一步为止ZAP给出的风险项分析和报告,已经可以一定程度满足要求了。
通过主菜单Report选项,可以选择输出HTML、XML等多种格式安全性测试报告。
主动爬取网站
配置好代理的情况下,使用浏览器设置好代理之后,进行任何站点的访问都会经过ZAP,这时就会在ZAP的context记录里留下该站点记录,如图:
右键点击需要测试的站点,选择Attack->Spider,弹出的选项窗口点击Start Scan,则会开始手动爬取网站。
主动扫描
与节操作类似,右键点击目标站点,选择Attack->Active Scan,就可以触发主动扫描:
扫描完毕后,同样可以切换到Alert界面,查看安全风险项,或者输出测试报告。