介绍 ZAP
OWASP ZAP是世界上最受欢迎的 Web 应用程序扫描仪,现在每月收到超过 400 万次“检查更新”调用(今年早些时候只有 100 万次)。

它是免费的、开源的,可供具有广泛安全经验的人使用,从新手到经验丰富的安全专家,以更好地了解 Web 应用程序安全状况。OWASP ZAP的工作方式是以类似于恶意黑客的方式攻击您的网络应用程序,它会在您的应用程序运行时对其进行攻击,并向您展示攻击者在攻击您的应用程序时能够找到的内容。

ZAP 桌面
ZAP 是为灵活性和采用而构建的,因此可以按照您喜欢的工作方式以多种方式运行它:

从命令行
作为桌面应用程序
作为后台守护进程
在本文中,我将向您展示如何从命令行自动化 ZAP,以及如何使用 ZAP 桌面应用程序对其进行设置。ZAP 桌面应用程序允许您准确查看 ZAP 的功能,并调整 ZAP 以尽可能有效地处理您的应用程序。

ZAP 需要Java 8+才能在本地运行,但您也可以在 Docker 中运行 ZAP并使用Webswing通过浏览器访问它。我们不会在这里深入探讨此设置,但欢迎您参考文档以开始使用。

请注意,如果您使用 docker 选项,那么您需要确保使用映射本地驱动器的选项启动 docker,以便您可以在停止 docker 映像后访问将要生成的文件。在 *nix 系统上,docker 选项是-v $(pwd):/zap/wrk/:rw- 在 Windows 上,您需要替换$(pwd)为合适目录的完整路径。

自动化框架
自动化框架(AF) 允许您使用一个 yaml 文件来控制 ZAP。还有其他方法可以使 ZAP 自动化,但 AF 是大多数用户推荐的方法。
您可以在文本编辑器中创建 yaml 文件,但也可以使用 ZAP 桌面创建它,因为这样您可以随时测试计划,这是我们将在此处使用的选项。

使用蜘蛛探索您的应用
首先要做的是探索您的应用程序。为人类设计的应用程序通常最好由人类探索,但这不是自动化和最终扩展的好选择。但是,我们将首先进行一些手动探索,以确保我们可以连接到该应用程序。

在 ZAP 桌面点击“Manual Explore”按钮。在下一个表格中,填写目标应用程序的 URL,取消选中“启用 HUD”框并单击“启动浏览器”。

应启动一个浏览器并显示您的目标应用程序——为了这个示例,我们将使用 Firefox,但如果您安装的是 Chrome 浏览器,它也应该可以正常工作。

现在查看站点树 — 您应该至少看到一个来自目标应用程序的 URL,可能还有更多。在本例中,我使用OWASP Juice Shop作为我的目标。

现在我们可以看到 2 个蜘蛛中的每一个如何处理我们的应用程序。

右键单击站点树中应用程序的顶部节点,然后选择“攻击 -> 蜘蛛…”

然后单击“开始扫描”。

这个蜘蛛应该运行得非常快,它会告诉你有多少 URL 被找到,有多少被添加到站点树:

如果您的目标应用是更传统的应用,那么这就足够了。但是,如果它是大量使用 JavaScript 的更现代的 Web 应用程序,那么您将需要使用 AJAX 蜘蛛。

右键单击站点树中应用程序的顶部节点,然后选择“攻击 -> AJAX 蜘蛛…”

然后单击“开始扫描”。

此蜘蛛程序将花费更长的时间,因为它会启动浏览器以单击 UI 元素。它还会告诉您它找到了多少个 URL:

通过导入 API 定义探索您的应用
如果您的应用程序只定义了一个 API,那么您将无法手动或使用任何一个 ZAP 蜘蛛探索它。

如果您有 API 定义,则可以通过“导入”菜单项导入它。ZAP 支持导入以下定义:

开放API
图形QL
WSDL
哈尔
定义上下文
如果您只是手动使用 ZAP,则不需要定义上下文,但在使用 Automation Framework 时需要定义上下文。幸运的是,这很容易做到——只需右键单击站点树中应用程序的顶部节点,然后选择“包含在上下文中 -> 新上下文:”

并可选地给它一个有意义的名字:

在桌面上创建计划
我们现在准备好创建计划了。

首先,您需要找到“自动化”选项卡。ZAP 有很多选项卡,因此默认情况下,除了最重要的选项卡外,所有选项卡都是隐藏的。单击底部面板中的绿色加号选项卡并选择“自动化:”

在新的自动化面板中单击“新计划...”按钮:

图片说明

选择您在上面定义的上下文,然后选择以下配置文件之一:

基线——如果你只是想被动地扫描你的应用程序而不是攻击它
GraphQL - 如果您有 GraphQL API 定义
OpenAPI - 如果您有 OpenAPI / Swagger API 定义
SOAP - 如果您有 SOAP 定义
全面扫描 - 如果您想攻击您的应用程序(并且没有 API 定义)

现在将显示您的计划摘要:

计划可以比这些配置文件灵活得多,但它们是您入门时使用的最佳选择。

Baseline 和 Full 扫描将包括spider和spiderAjax——如果您发现不需要,可以删除其中一个。不要同时删除两者,否则该计划将根本不会探索您的应用程序!

如果除了抓取之外还想导入 API 定义,则添加相关作业。

您可以在 ZAP 桌面中编辑计划:

双击任何作业将弹出一个对话框,允许您对其进行配置
“添加工作...”按钮将允许您向现有计划添加工作
“删除作业...”按钮将删除选定的作业
“Move Job Up”按钮会将所选作业向上移动一个位置
“向下移动作业”按钮会将所选作业向下移动一个位置
被动扫描
ZAP 将被动扫描由 ZAP 发起或通过它代理的每个请求。
这些配置文件都会添加两个相关的工作:

passiveScan-config - 这允许您微调被动扫描仪
passiveScan-wait - 等待所有请求被被动扫描,它应该总是在探索你的应用程序的任何作业之后运行
主动扫描
activeScan作业运行主动扫描器——这执行实际的攻击。

除非您只想被动扫描您的应用程序,否则您应该始终包含此作业。

双击作业将允许您微调活动扫描规则。

生成报告
毫无疑问,报告作业的任务是生成报告——有多种模板可供您选择,并提供不同的选项。请参阅https://www.zaproxy.org/docs/desktop/addons/report-generation/templates/以获取包含每个示例的最新列表。

验证
身份验证很难,而且绝对超出了这篇博文的范围(但我们将在未来尽最大努力对此进行深入探讨)。但是,ZAP 几乎可以处理任何身份验证机制——更多详细信息,请访问 ZAP 网站。好消息是,您可以在 ZAP 桌面上测试身份验证处理,您可以在其中准确查看正在发生的事情,并且当您使用该上下文创建计划时,所有身份验证配置都将导入计划中。

在本地测试您的计划
您可以使用“运行计划...”按钮运行您在 ZAP 中创建的身份验证计划。然后,您将在计划运行时看到作业的状态:

如果任何作业失败,您可以在 ZAP 桌面中调查它们。

然而,工作可能看似成功,但仍未达到您的预期。
这就是 AF 支持工作结果测试的原因——这些测试可以添加到任何工作中,并且可以执行以下操作:

检查任何ZAP 统计数据
检查特定警报是否存在
检查是否找到了特定的 URL 并可选择检查其内容
统计测试默认添加到蜘蛛作业中,但您可以使用“添加测试...”按钮(还有一个“删除测试...”按钮)向任何作业添加更多测试,并且不要忘记您可以加倍单击计划中的任何测试以对其进行编辑。

在 CI/CD 中运行
您可以使用如下命令从命令行运行 AF 测试:

zap.sh -cmd -autorun plan.yaml

您也可以在 docker 中运行它们。如果您使用的是稳定映像,那么我们建议使用单独的命令更新 ZAP:

docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable bash -c "zap.sh -cmd -addonupdate; zap.sh -cmd -autorun /zap/wrk/plan.yaml"

该$(pwd):/zap/wrk/:rw命令的一部分将您的本地 CWD 映射到/zap/wrkdocker 容器中的目录。

如果您在计划中使用任何脚本,那么您将需要确保它们位于或低于您的本地 CWD 并更改您的计划,以便通过它们在 docker 容器中出现的位置(即在 下/zap/wrk)引用它们。

如何自动化 OWASP ZAP相关推荐

  1. OWASP ZAP 扫描漏洞误报分析

    问题场景: 一次测试中对某个路由器使用owasp zap安全扫描软件扫描web漏洞,发现该网关设备存在跨站点dom脚本漏洞和shell注入多个漏洞. 问题分析: 因为该路由器设备已经经过多次安全问题修 ...

  2. OWASP ZAP安全测试工具使用教程(初级)

    OWASP ZAP安全测试工具使用教程 1.安装OWASP ZAP安全测试工具百度网盘地址: https://pan.baidu.com/s/1NxFclyIRMlkg4KUTq9N4PA 密码:er ...

  3. OWASP ZAP安全测试工具使用教程(高级)

    OWASP ZAP安全测试工具使用教程(高级) 1.设置安全测试策略 点击分析–>扫描策略–>进入到扫描策略界面 设置等级越高,扫描深度和扫描范围越强 2.设置扫描代理 点击工具–> ...

  4. 测试工具OWASP ZAP安装使用

    测试工具 OWASP ZAP安装使用 1. 概念介绍 1.1 OWASP 1.2 OWASP ZAP 2. 下载安装 2.1 下载 2.2 安装 3. 使用方法 3.1 本地代理设置 3.2 简单攻击 ...

  5. OWASP ZAP mac chrome代理配置取消URL强制Https【已解决】

    1.OWASP ZAP OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者积极维护.它可以帮助你在开发和测试应用程序时自动查找Web应用程序中的安全漏洞. ...

  6. OWASP ZAP上手体验

    新领到一个任务,试下OWASP ZAP. 工具说明 ZAproxy是一个易于使用交互式的用于web应用程序漏洞挖掘的渗透测试工具,可以检测sql注入,跨站脚本,跨站请求伪造以及路径遍历等问题. 下载地 ...

  7. OWASP ZAP安全扫描基础流程

    OWASP ZAP安全扫描工具使用较为方便,主要可以用于渗透性测试,类似用抓包工具,在浏览器和服务器之间,可以对信息进行分析和扫描. 安装环境:运行Java 8或更高版本JDK 这里介绍下最基础的扫描 ...

  8. app安全测试-OWASP ZAP 2.8 使用指南(一):安全测试基础及ZAP下载、安装

    概览 本文意在对于OWASP's Zed Attack Proxy(ZAP)软件做一个基本使用指南介绍. ZAP是一个用于实施安全性测试的工具,即使没有很强的安全测试背景也可以很好的使用. 为了达到这 ...

  9. OWASP ZAP mac版Chrome代理配置

    网上找了半天也没有完整的mac版代理配置,索性自己踩坑写了这篇,希望对大家有帮助~ 1. 设置-系统-打开您的计算机代理 2. 修改安全网页代理使其与ZAP本地代理一致,这样后续浏览器的访问都会经过Z ...

最新文章

  1. micropython mqtt_MicroPython使用MQTT协议接入OneNET云平台
  2. 2020美国计算机研究生学校排名,2020 US.news 美国研究生院排名出炉,美中国际独家解析!...
  3. 004_Gson树模型
  4. 深圳内推 | ​IDEA数字经济研究院招聘NLP算法工程师/算法实习生
  5. 寻找最大的K个数,Top K问题的堆实现
  6. 服务器:高端增势明显 行业大单涌现
  7. 私人笔记 -- 将图片插入到指定的单元格位置,并设置图片的宽度和高度
  8. AD19中画MOSFET的常见错误——封装出错
  9. 转 Java工程师成神之路
  10. vmplayer网络配置详解
  11. 数据结构 实验4——拓扑排序
  12. 51单片机WIFI模块ESP8266-01s一定要看这个!普中科技给的模块 避免采坑!+CWJAP:3 FAIL 配置不了wifi名称和密码?
  13. QTableView固定行显示的问题
  14. 二项分布(Binomial Distribution)
  15. 各款浏览器对PDF插件的支持
  16. pandas的is in和not in
  17. First, rewinding head to replay your work on top of it...
  18. JavaWeb前端框架VUE和Element组件详解
  19. 数字图像处理Python实战--高斯拉普拉斯金字塔图像重建
  20. Python 茎叶图

热门文章

  1. js节点都有哪些类型?怎么判断是哪种节点类型?
  2. 五大常见的数据类型之 String
  3. mysql md5 盐值_什么是md5盐值
  4. ASKO无胶圈洗衣机,会让你真正爱上洗衣这件事
  5. oracle 10046详解,ORACLE TRACE 10046事件常见的几种方法
  6. dlp2000 DLP® LightCrafter Display 2000 评估模块
  7. html图片3d球体,HTML5 三维透视球体运动
  8. 解决Java处理图片保存之后变红色的问题
  9. 从消费者物联网聊点骇人的
  10. Ceph存储基本使用