• 0
  • 0
分享
  • 免费开源跨平台!推荐一款安全测试工具中的超神器——软件测试圈
  • 饼干 2024-11-19 14:48:58 字数 3155 阅读 100 收藏 0

  开放式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功能,可以选择第三个选项,那么当前进程暂时不会被保存。

12-1.png

  更新插件

  由于owasp zap 官方不定期的会更新zap插件和zap版本,我们可以通过手动更新的方式如下:

12-2.png

12-3.png

  如果需要更新单个插件,选中有更新字样的插件,点击更新所选。

  市场为插件市场,是选择性安装的插件。主要分为一下3类的插件:

  ·release:为经过长期验证比较成熟的插件

  · beta:为正在测试测试中的插件,可能会出现问题

  · alpha:比beta更加低的测试版插件

  建议release和beta版的都安装上,alpha版本的可选择性安装!

  但是我这里没数据,暂不清楚是什么原因导致的。

12-4.png

  设置本地代理

  给浏览器设置http代理(也可以是其他浏览器),owasp zap默认使用8080端口开启http代理;

12-5.png

  因8080被占用,所以使用了8081

  修改owasp zap默认的代理,owasp zap的代理设置可在【工具】-【选项】-【本地代理】中修改:

12-6.png

  完成这一设置后,我们使用已设置的代理的浏览器去访问站点时,都会通过ZAP,于是这就给ZAP提供了抓包、分析、渗透测试的可能性。

  快速测试

  ZAP右上方区域是快速测试窗口,可以开启非常傻瓜式的渗透测试:

12-7.png

  输入网址,点击‘Attack’,搞定,so easy。

  在快速攻击过程中,ZAP做了以下几件事:

  ·使用爬虫抓取被测站点的所有页面

  · 在页面抓取的过程中被动扫描所有获得的页面

  · 抓取完毕后用主动扫描的方式分析页面,功能和参数

  结果分析

  等待上述快速测试完成以后,我们就可以拿到ZAP提供的测试结果进行分析。

  快速测试中,ZAP会产出以下一些产物:

  · 被测站点地图及页面资源

  · 所有请求、反馈记录

  · 安全性风险项目列表

  其中我们最关注的当然是安全性风险项,ZAP将做出以下标识:

12-8.png

  其中的所有风险项可以展开,ZAP在右侧窗口会对该风险项提供说明和解释,并且在右上部response区域高亮展示具体风险项由来(从反馈中分析得出的)。

12-9.png

  如果只是简单的安全性测试需求,或者只是为了学习安全性测试知识,到这一步为止ZAP给出的风险项分析和报告,已经可以一定程度满足要求了。

  通过主菜单Report选项,可以选择输出HTML、XML等多种格式安全性测试报告。

12-10.png

  主动爬取网站

  之前介绍了使用ZAP做为浏览器代理,配置好代理的情况下,使用浏览器进行任何站点的访问都会经过ZAP,这时就会在ZAP的context记录里留下该站点记录,如图:

12-11.png

  右键点击需要测试的站点,选择Attack->Spider,弹出的选项窗口点击Start Scan,则会开始手动爬取网站。

12-12.png

  主动扫描

  与节操作类似,右键点击目标站点,选择Attack->Active Scan,就可以触发主动扫描:

12-13.png

  主动扫描上面有一些相关 设置,例如:信息收集、客户商和器、服务器安全、注入等。如果你有一定基础可以去设置,不是很了解的朋友们只需要用默认的即可!

12-14.png

  最后:主要就是查看扫描结果,主动扫描后,针对扫描的结果【警告】菜单栏查看每一项看是否真的存在相应的问题,主要查看高危和中危漏洞,查看漏洞存在的url以及attack 的语句即 attack后服务器返回的结果。

12-15.png

  persist session结果保存

  【文件】-【persist session】,该功能主要保存“扫描分析的结果”,方便下次继续分析。

12-16.png

  扫描模式

  主要有4中扫描模式:安全模式、保护模式、标准模式、攻击模式;

  owasp zap默认用的是标准模式,你可以在【编辑 】- 【ZAP Mode】中选择你想要的模式。

12-17.png

  扫描策略

  有两个地方可以添加扫描策略 (1)【分析】-【扫描策略】,(2)设置按钮

12-18.png

  扫描策略你可以自己随意设置的!如果不懂就用默认的吧!

12-19.png

  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 生效

  扫描时跳过某个插件扫描

  在【扫描监控】中,点击旁边的蓝色按钮,可跳过该插件的检测!

12-20.jpg

  CSRF Tokens设置

  部分网站有防止csrf的token,无法正常提供token网站会重定向,可以通过owasp zap 的anti csrf tokens功能来添加该网站的token名称,告知owasp zap。

  在【设置】-【Anti CSRF Tokens】里添加。

12-21.png

  contexts/scope 站点过滤

  该功能可快速的定位自己关心的站点;

12-22.png

  session properties

  owasp zap 扫描站点的所有session结果都保存在session properties 中,默认是手动通过浏览器填写账号密码来记录session;

12-23.png

  http session

  owasp zap 默认有如下的字段名,如果网站中有其他自定义的session名,需要自己添加进来;

12-24.png

  查看http session的值;

12-25.png


作者:Eike    

来源:http://www.51testing.com/html/60/n-7803260.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   叮,周五一上班,工作群里领导就开始催:‘各位小伙伴别忘记交周报了’  这种场景熟不熟悉~  你有没有一种好难的感觉?  心里顿时在纠结周报要写点什么呢?  为什么有这种想法呢?  当工作内容并不饱和时,编写周报可能会显得有些尴尬,因为需要在有限的工作内容中挖掘亮点,展示自己的工作价值。  所以即使工作内容不多,但周报还是得写得满满当当?体现我们的价值  当我们在工作中遇到了工作很闲的情况时,编写周报可能会变得很困难。我们可能会觉得没有足够的内容可以写,周报显得很空洞。然而,即使工作很闲,我们仍然可以通过一些技巧和方法来编写一份饱和且有意义的周报。  本文将分享一些如何进行条目化编写周报、如...
            0 0 732
            分享
          • 在目前的平台项目当中,数据新增或者修改已经是一个必备功能,数据相关的测试就需要关注数据的准确性,除此之外,一些电商搞活动的时候,经常能看到系统bug导致多次支付多次扣款的问题,被客户投诉,这些都指向同一个问题,截流问题,也是本文探讨的重点。1)什么情况下会出现数据重复提交的问题?用户操作系统新增数据,网页卡顿了,页面没有及时变更,没有返回成功的提示,此时又比较着急,这时候可能就会多次点击提交按钮;某些功能添加数据不是一步完成的,通常要分成好几步,用户操作完第一步进入第二步页面的时候,又返回了上一步,这种重复的前进和后退操作也有可能会产生重复数据;用户在提交数据的页面直接刷新,导致页面还是停留在...
            1 1 11749
            分享
          •   一、什么是回归测试  回归测试(regression test)是在程序被修改后启动的一个测试过程。其目的在于验证程序被修改后,程序仍然按照原有测试用例正常运行。在开发阶段,回归测试可用于发现缺陷并被修复后,重新验证带缺陷功能块这一阶段。  二、回归测试和普通测试的区别  许多人常以为回归测试只是普通测试的拓展,然而事实并非完全如此。回归测试与普通测试存在着以下几点区别。  1.测试计划有不同  普通测试的测试计划使用的测试用例全是新增未曾执行过的,常用于代码开发阶段;而回归测试测试计划中使用的测试用例为已经被执行过的。  2.测试范围不同  普通测试旨在于检测程序的正确性,包括单模块功能...
            12 12 3238
            分享
          • 前言最早接触“零侵入”一词,源于笔者参加美团举办的测试技术沙龙活动。活动上,去哪儿网的童鞋介绍其自主研发的接口自动化测试框架Qunit时,提到了一项关键技术:零侵入切面技术,该技术方案最大优点是:无需修改代码实现mock功能,举例说明如下。 假如被测接口里面调用了第三方接口,由于第三方接口的不确定性,对于某些测试场景(比如请求超时、特定错误码测试等),测试人员往往需要开发人员添加mock来配合测试,这种工作效率相对来说是比较低的,而且也不利于自动化测试的开展。零侵入技术把mock主动权交接给测试人员管理,无需开发再去修改代码、部署测试环境等一系列动作。测试人员只需根据具体的测试场景编写对应三方...
            1 2 3099
            分享
          • 简介本文将介绍Groovy中def关键字。它为这种动态 JVM 语言提供了可选的类型化功能。def关键字的含义def关键字用于在 Groovy 中定义无类型变量或函数,因为它是一种可选类型的语言。当我们不确定变量或字段的类型时,我们可以利用 def 让 Groovy 在运行时根据分配的值决定类型:def a = "FunTester"  def b = ['A', 'B', 'C', 'D']在这里,a...
            0 0 1264
            分享
      • 51testing软件测试圈微信