渗透测试工具ZAP入门教程(1)-安装和快速开始

news2024/11/25 1:06:00

介绍 ZAP

Zed Attack Proxy(ZAP)是一个免费的开源渗透测试工具,在 软件安全项目 (SSP)。ZAP 专为测试 Web 应用程序而设计,既灵活又可扩展。

ZAP的核心是所谓的“中间人代理”。它位于测试人员的浏览器和Web应用程序之间,以便它可以拦截和检查浏览器和Web应用程序之间发送的消息,根据需要修改内容,然后将这些数据包转发到目的地。它可以用作独立应用程序和守护进程。

如果已在使用另一个网络代理(如在许多企业环境中),则可以将 ZAP 配置为连接到该代理。

ZAP 为各种技能水平提供功能,从开发人员到刚接触安全测试的测试人员,再到安全测试专家。ZAP 具有每个主要操作系统和 Docker 的版本,因此您不必绑定到单个操作系统。 其他功能可从 ZAP 市场中的各种附加组件免费获得,可从 ZAP 客户端中访问。

由于 ZAP 是开源的,因此可以检查源代码以准确了解功能是如何实现的。任何人都可以自愿从事 ZAP 工作、修复错误、添加功能、创建拉取请求以将修复程序拉入项目,以及编写附加组件以支持特殊情况。

安装和配置 ZAP

ZAP 有适用于 Windows、Linux 和 macOS 的安装程序。下面列出的下载站点上还提供了 Docker 映像。

安装 ZAP

首先要做的是在要对其执行渗透测试的系统上安装 ZAP。从下载页面下载相应的安装程序。

请注意,ZAP 需要 Java 11+ 才能运行。macOS 安装程序包含相应版本的 Java,但您必须为 Windows、Linux 和跨平台版本单独安装 Java 11+。Docker 版本不需要您安装 Java。

windows 版JDK使用exe安装后即可。

 

 windows安装ZAP,直接双击exe文件安装即可。

持久化会话

首次启动 ZAP 时,系统将询问您是否要保留 ZAP 会话。默认情况下,ZAP 会话始终记录到具有默认名称和位置的 HSQLDB 数据库中的磁盘。如果不保留会话,则在退出 ZAP 时将删除这些文件。

如果选择保留会话,则会话信息将保存在本地数据库中,以便以后可以访问它,并且您将能够提供用于保存文件的自定义名称和位置。

现在,选择“否,我不想在此时保留此会话”,然后单击“开始”。ZAP 会话暂时不会持久化。

ZAP 桌面用户界面

ZAP 桌面 UI 由以下元素组成:

  1. 菜单栏 – 提供对许多自动和手动工具的访问。
  2. 工具栏 – 包括可轻松访问最常用功能的按钮。
  3. 树窗口 – 显示站点树和脚本树。
  4. 工作区窗口 – 显示请求、响应和脚本,并允许您对其进行编辑。
  5. 信息窗口 – 显示自动和手动工具的详细信息。
  6. 页脚 – 显示找到的警报的摘要以及主要自动化工具的状态。

使用 ZAP 时,可以单击菜单栏上的“帮助”或按 F1 访问《ZAP 桌面用户指南》中的上下文相关帮助。它也可以在线获得。

有关 UI 的详细信息,请参阅 ZAP 联机文档中的 ZAP UI 概述。

重要说明:您应该只使用 ZAP 攻击您有权测试的应用程序,并进行主动攻击。由于这是一个模拟,其作用类似于真实攻击,因此可能会对站点的功能,数据等造成实际损害。如果您担心使用 ZAP,可以通过切换到安全模式来防止它造成伤害(尽管 ZAP 的功能会显着降低)。

若要将 ZAP 切换到安全模式,请单击主工具栏上模式下拉列表中的箭头以展开下拉列表并选择“安全模式”。

快速开始-自动扫描

开始使用 ZAP 的最简单方法是通过“快速入门”选项卡。 快速入门是安装 ZAP 时自动包含的 ZAP 加载项。

要运行快速入门自动扫描:

  1. 启动 ZAP,然后单击工作区窗口的快速启动选项卡。
  2. 单击大的自动扫描按钮。
  3. 在“要攻击的 URL”文本框中,输入要攻击的 Web 应用程序的完整 URL。
  4. 点击攻击

勾选传统爬虫,点击攻击,ZAP会自动攻击填写的网站。

ZAP 将继续使用蜘蛛抓取 Web 应用程序,并被动扫描它找到的每个页面。然后,ZAP 将使用活动扫描程序攻击所有发现的页面、功能和参数。

2种爬虫

ZAP 提供 2 个爬虫用于爬网 Web 应用程序,您可以从此屏幕使用其中一个或两个。

传统的 ZAP 蜘蛛,通过检查来自 Web 应用程序的响应中的 HTML 来发现链接。这种蜘蛛速度很快,但在探索使用 JavaScript 生成链接的 AJAX Web 应用程序时并不总是有效的。

对于AJAX应用程序,ZAP的AJAX蜘蛛可能更有效。该蜘蛛通过调用浏览器来探索Web应用程序,然后跟踪已生成的链接。AJAX 蜘蛛比传统蜘蛛慢,需要额外的配置才能在“无头”环境中使用。

ZAP 将被动扫描通过它代理的所有请求和响应。到目前为止,ZAP 只对您的 Web 应用程序进行了被动扫描。被动扫描不会以任何方式改变响应,被认为是安全的。扫描也在后台线程中执行,以免减慢探索速度。被动扫描擅长发现一些漏洞,并作为一种了解 Web 应用程序的基本安全状态并找到可能需要进行更多调查的地方的方法。

但是,主动扫描会尝试通过使用针对所选目标的已知攻击来查找其他漏洞。主动扫描是对这些目标的真正攻击,可能会使目标面临风险,因此不要对您无权测试的目标使用主动扫描。

解释您的测试结果

当 ZAP 抓取您的 Web 应用程序时,它会构建 Web 应用程序页面以及用于呈现这些页面的资源的映射。然后,它会记录发送到每个页面的请求和响应,并在请求或响应出现潜在问题时创建警报。

查看浏览的页面

要检查浏览页面的树视图,请单击树窗口中的站点选项卡。您可以展开节点以查看访问的各个 URL。

查看警报和警报详细信息

页脚的左侧包含测试期间发现的警报计数,这些警报按风险类别细分。这些风险类别是:

警报 

 点击警报详情,可以看到详细信息

 

历史

在历史页面可以看到执行过扫描的历史记录。 

spider

可以看到执行进度。

主动扫描

可以看到爬虫发出的请求。可以看到爬虫一共发出2141个请求。

 

 生成报告

选中站点,点击生成报告,可以生成html格式的测试报告,报告包含扫描出的警报信息内容。

 

 

 

 

手动浏览应用程序

被动扫描和自动攻击功能是开始对 Web 应用程序进行漏洞评估的好方法,但它有一些限制。其中包括:

  • 被动扫描期间无法发现受登录页保护的任何页面,因为除非已配置 ZAP 的身份验证功能,否则 ZAP 将不会处理所需的身份验证。
  • 您无法很好地控制被动扫描中的探索顺序或自动攻击中执行的攻击类型。ZAP 确实提供了许多其他选项,用于被动扫描之外的探索和攻击。

蜘蛛是探索基本站点的好方法,但它们应该与手动探索相结合,以更有效。例如,蜘蛛只会在Web应用程序的表单中输入基本的默认数据,但用户可以输入更多相关信息,这些信息反过来又可以将更多的Web应用程序暴露给ZAP中。对于需要有效电子邮件地址的注册表等内容尤其如此。蜘蛛可能会输入一个随机字符串,这将导致错误。用户将能够对该错误做出反应并提供格式正确的字符串,这可能会导致在提交和接受表单时公开更多应用程序。

被动扫描是ZAP自动对网站进行扫描,手动浏览是用户在网站进行操作,ZAP先记录下用户操作,然后基于这些操作再进行攻击,发现漏洞。手动浏览时,操作应该遍历每一个页面。

手动浏览 

要手动探索您的应用程序,请执行以下操作:

  1. 启动 ZAP,然后单击工作区窗口的快速启动选项卡。
  2. 单击大的手动探索按钮。
  3. 在“要浏览的 URL”文本框中,输入要浏览的 Web 应用程序的完整 URL。
  4. 选择您要使用的浏览器
  5. 单击启动浏览器

ZAP会启动浏览器,显示如图。

 

如果要将任何浏览器与现有配置文件一起使用,例如安装其他浏览器加载项,则需要手动将浏览器配置为通过 ZAP 代理,并导入并信任 ZAP 根 CA 证书。有关更多详细信息,请参阅 ZAP 桌面用户指南。

默认情况下,将启用 ZAP 平视显示器 (HUD)。在启动浏览器之前取消选中此屏幕上的相关选项将禁用HUD。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法训练-双指针】最长无重复子串(数组)

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是最长无重复子串或最长无重复子数组,这类题目出现频率还是很高的。 最长无重复子数组 先来看看数组数据结构的题目 题干 输入&#…

Shiro认证框架

目录 概述 认证授权及鉴权 Shiro框架的核心组件 基本流程 spring bootshiromybatisPlus...实现用户登录 step1:准备工作 (1)坐标 (2)连接数据库 (3)JavaBean (4)dao数据访问层 (5)密码工具类 DigestsUtil (6)配置类 step2:认证功能 step3:授权鉴权 概述…

11. 网络模型保存与读取

11.1 网络模型保存(方式一) import torchvision import torch vgg16 torchvision.models.vgg16(pretrainedFalse) torch.save(vgg16,"./model/vgg16_method1.pth") # 保存方式一:模型结构 模型参数 print(vgg16) 结果: VGG((feature…

飞腾FT-2000/4、D2000 log报错指导(2)

在爱好者群中遇见了很多的固件问题,这里总结记录了大家的交流内容和调试心得。主要是飞腾桌面CPU FT-2000/4 D2000相关的,包含uboot和UEFI。希望对大家调试有所帮助。 这个专题会持续更新,凑够一些就发。 12 UEFI现象:主板启动时串口信息停在 s3 flag form ec 处,如下图所…

局域网中电脑共享文件给手机

学习资源: 局域网共享:这样设置,你可以轻松拷贝任何电脑的文件。_哔哩哔哩_bilibili 可以实现什么效果? 连接同一个WIFI,电脑端为服务端,提供共享文件,手机是客户端,可以读取服务端…

Java-泛型

文章目录 Java泛型什么是泛型?在哪里使用泛型?设计出泛型的好处是什么?动手设计一个泛型泛型的限定符泛型擦除泛型的通配符 结论 Java泛型 什么是泛型? Java泛型是一种编程技术,它允许在编译期间指定使用的数据类型。…

Leetcode:238. 除自身以外数组的乘积【题解超详细】

纯C语言实现(小白也能看明白) 题目 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数…

8. 损失函数与反向传播

8.1 损失函数 ① Loss损失函数一方面计算实际输出和目标之间的差距。 ② Loss损失函数另一方面为我们更新输出提供一定的依据。 8.2 L1loss损失函数 ① L1loss数学公式如下图所示,例子如下下图所示。 import torch from torch.nn import L1Loss inputs torch.tens…

冷启问题目前常见解决方案

1、冷启动的基本方式 随机冷启 个性化冷启 2、冷启动解决问题 冷启动保量 冷启动保量,保证每个item曝光的次数一样,实时统计已曝光的次数和要曝光的次数 冷启动结束过滤,如果需曝光的量越大,且越接近冷启结束时间&#xff0…

3.2 数据的表现形式及其运算

3.2.1 常量和变量 在计算机高级语言中,数据有两种表现形式:常量和变量。 1.常量 在程序运行过程中,其值不能被改变的量称为常量。如例3.1程序中的5,9,32和例3.2程序中的1000,0.0036,0.0225,0.0198是常量。数值常量就是数学中的常数。 常用的…

三、前端监控之Sentry的介绍

Sentry介绍 Sentry是一个开源的实时事件日志记录和聚合平台。它专门用于监视错误和提取执行适当的事后操作所需的所有信息, 而无需使用标准用户反馈循环的任何麻烦。支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语…

【Docker】网络

文章目录 Docker 网络基础Docker网络管理Docker网络架构CNMLibnetwork驱动 常见的网络类型 Docker 网络管理命令docker network createdocker network inspectdocker network connectdocker network disconnectdocker network prunedocker network rmdocker network ls docker …

跳跃游戏 II【贪心算法】

跳跃游戏 II class Solution {public int jump(int[] nums) {int cur 0;//当前最大覆盖路径int next 0;//下一步的最大覆盖路径int res 0;//存放结果&#xff0c;到达终点时最少的跳跃步数for (int i 0; i < nums.length; i) {//遍历数组&#xff0c;以给出数组以一个…

老韦上新

知道韦东山老师的人很多&#xff0c;当然肯定可能也是有人不知道的&#xff0c;比如我今天吃饭的时候&#xff0c;我跟 JP 同学说&#xff0c;你认识韦东山老师吗&#xff1f;JP 同学说&#xff0c;「我不认识&#xff0c;他是不是搞 ODM 的&#xff1f;你知道的&#xff0c;我…

【python】输出高亮信息的内容

背景 日志是定位问题和数据分析的关键手段之一&#xff0c;尤其是在调试阶段&#xff0c;高效的、具有辨识度的日志可以非常快速准确的进行问题定位。shell中的echo命令自带文本格式化输出的功能&#xff0c;我们先来回顾下基本的语法&#xff0c;然后套用到python中即可。 s…

【kubernetes】使用kubepshere部署中间件服务

KubeSphere部署中间件服务 入门使用KubeSphere部署单机版MySQL、Redis、RabbitMQ 记录一下搭建过程 (内容学习于尚硅谷云原生课程) 环境准备 VMware虚拟机k8s集群&#xff0c;一主两从&#xff0c;master也作为工作节点&#xff1b;KubeSphere k8skubesphere devops比较占用磁…

手写数字识别之优化算法:观察Loss下降的情况判断合理的学习率

目录 手写数字识别之优化算法:观察Loss下降的情况判断合理的学习率 前提条件 设置学习率 学习率的主流优化算法 手写数字识别之优化算法:观察Loss下降的情况判断合理的学习率 我们明确了分类任务的损失函数&#xff08;优化目标&#xff09;的相关概念和实现方法&#xff…

Torrent Scanner插件导致网站重复登录

Torrent Scanner插件导致网站重复登录 网站登录成功后随便点击任意按钮&#xff0c;又重复跳回登录页面&#xff0c;可能原因是cookie的问题&#xff0c;不过博主遇到的是Torrent Scanner插件导致重复登录&#xff0c;解决方法&#xff1a;直接卸载或停止Torrent Scanner插件。…

C++贪吃蛇(控制台版)

C自学精简实践教程 目录(必读) 目录 主要考察 需求 输入文件 运行效果 实现思路 枚举类型 enum class 启动代码 输入文件data.txt 的内容 参考答案 学生实现的效果 主要考察 模块划分 文本文件读取 UI与业务分离 控制台交互 数据抽象 需求 用户输入字母表示方…

【leetcode 力扣刷题】双指针///原地扩充线性表

双指针///原地扩充线性表 剑指 Offer 05. 替换空格定义一个新字符串扩充字符串&#xff0c;原地替换思考 剑指 Offer 05. 替换空格 题目链接&#xff1a;剑指 Offer 05. 替换空格 题目内容&#xff1a; 这是一道简单题&#xff0c;理解题意&#xff0c;就是将字符串s中的空格…