开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。其使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。目前OWASP全球拥有220个分部近六万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。
什么是ZAP
OWASP ZAP,全称是OWASP Zed attack proxy,是一款web application 集成渗透测试和漏洞工具,同样是免费开源跨平台的。
ZAP主要覆盖了安全性测试里渗透测试即对系统进行模拟攻击和分析来确定其安全性漏洞。ZAP能够以代理的形式来实现渗透性测试,它将自己和浏览器之间设置一个中间人的角色,浏览器与服务器的任何交互都将经过ZAP,ZAP则可以通过对其抓包进行分析、扫描。
主要拥有以下重要功能:
· 本地代理
· 主动扫描
· 被动扫描
· Fuzzy
· 暴力破解
OWASP ZAP 下载地址
github地址:https://github.com/zaproxy/zaproxy
OWASP ZAP 官方下载地址:https://www.zaproxy.org/download/
OWASP ZAP 安装
下载地址中下载对应的安装包进行安装,注意需要安装jdk环境。
OWASP ZAP使用
我这里安装的是mac版本的,就使用mac版本来演示:
首次启动zap
看到以下对话框,询问是否要保持ZAP进程。
保存进程则可以让你的操作得到保留,下次只要打开历史进程就可以取到之前扫描过的站点以及测试结果等。
一般来说,如果对固定的产品做定期扫描,应该保存一个进程做为长期使用,选第一或者第二个选项都可以。
如果只是想先简单尝试ZAP功能,可以选择第三个选项,那么当前进程暂时不会被保存。
更新插件
由于owasp zap 官方不定期的会更新zap插件和zap版本,我们可以通过手动更新的方式如下:
如果需要更新单个插件,选中有更新字样的插件,点击更新所选。
市场为插件市场,是选择性安装的插件。主要分为一下3类的插件:
·release:为经过长期验证比较成熟的插件
· beta:为正在测试测试中的插件,可能会出现问题
· alpha:比beta更加低的测试版插件
建议release和beta版的都安装上,alpha版本的可选择性安装!
但是我这里没数据,暂不清楚是什么原因导致的。
设置本地代理
给浏览器设置http代理(也可以是其他浏览器),owasp zap默认使用8080端口开启http代理;
因8080被占用,所以使用了8081
修改owasp zap默认的代理,owasp zap的代理设置可在【工具】-【选项】-【本地代理】中修改:
完成这一设置后,我们使用已设置的代理的浏览器去访问站点时,都会通过ZAP,于是这就给ZAP提供了抓包、分析、渗透测试的可能性。
快速测试
ZAP右上方区域是快速测试窗口,可以开启非常傻瓜式的渗透测试:
输入网址,点击‘Attack’,搞定,so easy。
在快速攻击过程中,ZAP做了以下几件事:
·使用爬虫抓取被测站点的所有页面
· 在页面抓取的过程中被动扫描所有获得的页面
· 抓取完毕后用主动扫描的方式分析页面,功能和参数
结果分析
等待上述快速测试完成以后,我们就可以拿到ZAP提供的测试结果进行分析。
快速测试中,ZAP会产出以下一些产物:
· 被测站点地图及页面资源
· 所有请求、反馈记录
· 安全性风险项目列表
其中我们最关注的当然是安全性风险项,ZAP将做出以下标识:
其中的所有风险项可以展开,ZAP在右侧窗口会对该风险项提供说明和解释,并且在右上部response区域高亮展示具体风险项由来(从反馈中分析得出的)。
如果只是简单的安全性测试需求,或者只是为了学习安全性测试知识,到这一步为止ZAP给出的风险项分析和报告,已经可以一定程度满足要求了。
通过主菜单Report选项,可以选择输出HTML、XML等多种格式安全性测试报告。
主动爬取网站
之前介绍了使用ZAP做为浏览器代理,配置好代理的情况下,使用浏览器进行任何站点的访问都会经过ZAP,这时就会在ZAP的context记录里留下该站点记录,如图:
右键点击需要测试的站点,选择Attack->Spider,弹出的选项窗口点击Start Scan,则会开始手动爬取网站。
主动扫描
与节操作类似,右键点击目标站点,选择Attack->Active Scan,就可以触发主动扫描:
主动扫描上面有一些相关 设置,例如:信息收集、客户商和器、服务器安全、注入等。如果你有一定基础可以去设置,不是很了解的朋友们只需要用默认的即可!
最后:主要就是查看扫描结果,主动扫描后,针对扫描的结果【警告】菜单栏查看每一项看是否真的存在相应的问题,主要查看高危和中危漏洞,查看漏洞存在的url以及attack 的语句即 attack后服务器返回的结果。
persist session结果保存
【文件】-【persist session】,该功能主要保存“扫描分析的结果”,方便下次继续分析。
扫描模式
主要有4中扫描模式:安全模式、保护模式、标准模式、攻击模式;
owasp zap默认用的是标准模式,你可以在【编辑 】- 【ZAP Mode】中选择你想要的模式。
扫描策略
有两个地方可以添加扫描策略 (1)【分析】-【扫描策略】,(2)设置按钮
扫描策略你可以自己随意设置的!如果不懂就用默认的吧!
Policy:扫描策略名称,需要填写。
Default Alert Threshold:告警阀值,有low、medium、high,阀值越高owasp zap扫描爆出的漏洞数就越少,阀值越高owasp zap就只爆出确认的漏洞高的。
Default Attack Strength:攻击强度,有low、medium、high、insane,强度越高,扫描速度越快。
Apply xx Threshold to All:把告警阀xx值给所有扫描插件,点击go 生效
Apply xx Strength to All:把扫描强度xx应用给所有扫描插件,点击go 生效
扫描时跳过某个插件扫描
在【扫描监控】中,点击旁边的蓝色按钮,可跳过该插件的检测!
CSRF Tokens设置
部分网站有防止csrf的token,无法正常提供token网站会重定向,可以通过owasp zap 的anti csrf tokens功能来添加该网站的token名称,告知owasp zap。
在【设置】-【Anti CSRF Tokens】里添加。
contexts/scope 站点过滤
该功能可快速的定位自己关心的站点;
session properties
owasp zap 扫描站点的所有session结果都保存在session properties 中,默认是手动通过浏览器填写账号密码来记录session;
http session
owasp zap 默认有如下的字段名,如果网站中有其他自定义的session名,需要自己添加进来;
查看http session的值;
作者:Eike