如何自动化 OWASP ZAP
admin
2024-01-28 00:30:42
0

介绍 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)引用它们。

相关内容

热门资讯

安卓系统的经典铃声,唤醒回忆的... 你有没有发现,手机里那些熟悉的铃声,有时候就像老朋友一样,陪伴着我们度过了无数个日日夜夜?今天,就让...
鸿蒙系统还是安卓系统号,系统之... 你有没有想过,手机里的操作系统就像是我们的大脑,它决定了我们手机能做什么,不能做什么。现在,就让我们...
安卓系统装贝达,安卓系统下的贝... 你有没有想过,你的安卓手机装上贝达系统后,会有怎样的奇妙体验呢?想象你的手机瞬间变身,变得流畅无比,...
安卓系统沃尔沃音响设置,轻松享... 你有没有发现,自从你的安卓手机和沃尔沃音响完美结合后,开车时的音乐体验简直就像是在音乐厅里一样?没错...
米10系统基于安卓,基于安卓的... 你知道吗?最近手机圈里可是热闹非凡呢!小米10这款手机,自从发布以来就吸引了无数人的目光。而它所搭载...
命令安卓系统怎么卸载,安卓系统... 手机里装了太多不用的应用,是不是感觉手机都快要爆炸了?别急,今天就来教你怎么轻松卸载安卓系统中的应用...
安卓系统安装小学教材,安卓系统... 你有没有想过,手机里的安卓系统竟然能装上小学教材呢?没错,你没听错!在这个信息爆炸的时代,科技的发展...
华为安卓系统锁住了,揭秘锁屏背... 最近是不是发现你的华为手机有点儿“顽皮”了?它突然间变得神秘起来,屏幕上那个熟悉的安卓系统仿佛被施了...
安卓电脑改苹果系统,跨越平台的... 你有没有想过,把你的安卓电脑改头换面,变成一个优雅的苹果系统使用者呢?想象那流畅的界面,那独特的触控...
安卓系统怎么按后台,并在任务完... 你有没有遇到过这种情况:手机屏幕一黑,安卓系统就自动进入后台了?是不是觉得有点小郁闷,想要手动切换回...
2021年安卓系统ui,202... 你有没有发现,手机界面最近好像换了个模样?没错,2021年的安卓系统UI可是来了一场大变身呢!今天,...
安卓系统程序编写软件,打造个性... 你有没有想过,手机里的那些神奇应用是怎么诞生的呢?没错,就是那些让你在闲暇时光刷刷视频、在通勤路上玩...
自动开机安卓系统,智能生活新篇... 你有没有想过,当你的安卓手机在清晨的第一缕阳光照耀下自动开机,那种轻松自在的感觉?想象不用再手动解锁...
真我平板x安卓系统,畅享智能生... 亲爱的读者们,你是否也在寻找一款既能满足你对平板电脑的期待,又能让你畅享安卓系统带来的无限乐趣的设备...
恒星安卓系统官网,引领未来智能... 亲爱的读者们,你是否曾好奇过那些闪耀在夜空中的星星,它们是如何在浩瀚的宇宙中熠熠生辉的呢?今天,我要...
u8安卓系统,功能与特色深度解... 你知道吗?在手机操作系统界,有一个小家伙可是相当受欢迎的,它就是U8安卓系统。今天,就让我带你来一探...
花椒安卓系统美颜功能,打造完美... 你有没有发现,现在拍照已经不仅仅是记录生活的工具了,它更是一种艺术创作呢!而在这其中,花椒安卓系统的...
戴尔平板升级安卓系统,畅享安卓... 你有没有发现,戴尔平板最近好像悄悄地来了一次大变身?没错,就是那个我们熟悉的戴尔平板,它现在竟然可以...
安卓助手怎么升级系统,畅享最新... 亲爱的安卓用户们,你是否也和我一样,对安卓系统的升级充满了期待和好奇呢?每次系统升级,都仿佛是给我们...
国产安卓系统的发展,国产安卓系... 你知道吗?在我国科技飞速发展的今天,国产安卓系统可是越来越受到大家的关注呢!它就像一颗冉冉升起的新星...