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

介绍 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.rhkb.cn/news/107786.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go学习-指针 标识符

指针,以及标识符 1.指针 (1).基本介绍 1)基本数据类型,变量存的值,也叫值类型 2)获取变量的地址用&,比如 var num int ,获取num的地址:&num 3)指针类型&…

Yolo系列-yolov2

YOLO-V2 更快!更强! YOLO-V2-BatchNormalization BatchNormalization(批归一化)是一个常用的深度神经网络优化技术,它可以将输入数据进行归一化处理,使得神经网络更容易进行学习。在YOLOv2中,B…

promise

promise 属于事件循环的微任务,具体详见:事件循环 Promise 语法: const p1 new Promise((reslove,reject)>{console.log(2);reslove(1) }).then((data)>{console.log(3);console.log(data) }).catch((data)>{console.log(3); }) promise.th…

基于Milvus Cloud的相似穿搭推荐系统教程——图像分割

作为一个大众眼中的“非典型程序员”,我喜欢拥抱时尚和潮流,比如我经常在演讲时穿粉色裤子,这甚至已经成为一个标志性打扮。某天又逢主题演讲日,我站在衣柜前挑选上衣的时候,忽然灵光乍现:有没有可能借助 Milvus Cloud找到和我穿搭风格最为相似的明星呢? 这个想法在我脑…

Oracle给表空间添加容量

假如给SYSTEM表空间添加 查看文件位置和容量:Select * FROM DBA_DATA_FILES; FILE_NAME就是要修改的文件 查看每一个表空间的容量,单位MB: SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces…

部分调试记录

Ubuntu16.04纯命令行安装VMwareTools hudahuahudahua-virtual-machine:~$ sudo apt-get install open-vm-tools -yhudahuahudahua-virtual-machine:~$ sudo apt-get install open-vm-tools-desktop无法加载so文件,版本问题 [rootdragonboard /]# ./Qserial -qws .…

sql server删除历史数据

1 函数 datediff函数: DATEDIFF ( datepart , startdate , enddate )datepart的取值可以是year,quarter,Month,dayofyear,Day,Week,Hour,minute,second,millisecond startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。 2 例子 删除2023年以…

2023前端面试笔记 —— CSS3

系列文章目录 内容链接2023前端面试笔记HTML52023前端面试笔记CSS3 文章目录 系列文章目录前言一、CSS选择器的优先级二、通过 CSS 的哪些方式可以实现隐藏页面上的元素三、px、em、rem之间有什么区别?四、让元素水平居中的方法有哪些五、在 CSS 中有哪些定位方式六…

DETRs with Collaborative Hybrid Assignments Training论文笔记

Title:[DETRs with Collaborative Hybrid Assignments Training Code 文章目录 1. Motivation2. one to one VS one to many3. Method(1)Encoder feature learning(2)Decoder attention learning 1. Motivation 当前…

正确进行自动化测试

前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法…

论文阅读及复现——《CT_ICP: Real-time Elastic LiDAR Odometry with Loop Closure》

论文阅读之——《CT_ICP: Real-time Elastic LiDAR Odometry with Loop Closure》带闭环的实时弹性激光雷达里程计 1. 主要贡献2. 相关说明3. 激光里程计3.1 里程计公式构建3.2 局部地图与健壮性 4. 回环检测与后端5. 实验结果5.1 里程计实验结果5.2 回环检测实验结果 6. 总结…

opencv-答题卡识别判卷

#导入工具包 import numpy as np import argparse import imutils import cv2# 设置参数 ap argparse.ArgumentParser() ap.add_argument("-i", "--image", requiredTrue,help"path to the input image") args vars(ap.parse_args())# 正确答案…

【附安装包】Vred2023安装教程

软件下载 软件:Vred版本:2023语言:简体中文大小:2.39G安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.0GHz 内存4G(或更高)下载通道①百度网盘丨64位下载链接:https://pan.baidu.com…

Nginx 高级配置

目录 1 网页的状态页 2 Nginx 第三方模块 2.1 ehco 模块 3 变量 3.1 内置 3.2 定义变量 4 Nginx压缩功能 5 https 功能 6 自定义图标 1 网页的状态页 基于nginx 模块 ngx_http_stub_status_module 实现,在编译安装nginx的时候需要添加编译参数 --with-http…

pytest之parametrize参数化

前言 我们都知道pytest和unittest是兼容的,但是它也有不兼容的地方,比如ddt数据驱动,测试夹具fixtures(即setup、teardown)这些功能在pytest中都不能使用了,因为pytest已经不再继承unittest了。 不使用dd…

3 自制一个集群分发脚本

1. 随便取了一个名字:xsync 2. 在一个配置环境变量的目录下,我是放在了/opt/software下,这个路径我是配置了环境变量的。 3. 编辑脚本:vim xsync #!/bin/bash#1. 判断参数个数 if [ $# -lt 1 ] thenecho Not Enough Arguement!…

海康摄像头通过SDK接入到LiveNVR实现双向语音喊话对讲与网页无插件播放,并支持GB28181级联语音对讲...

目录 1、确认摄像头是否支持对讲2、摄像头视频类型复合流3、通道配置SDK接入4、视频广场点击播放5、相关问题 5.1、如何配置通道获取直播流?5.2、如何GB28181级联国标平台?6、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、确认摄像头是否支持对讲 可以访问摄…

为什么使用Nacos而不是Eureka(Nacos和Eureka的区别)

文章目录 前言一、Eureka是什么?二、Nacos是什么?三、Nacos和Eureka的区别3.1 支持的CAP3.2连接方式3.3 服务异常剔除3.4 操作实例方式 总结 前言 为什么如今微服务注册中心用Nacos相对比用Eureka的多了?本文章将介绍他们之间的区别和优缺点…

SemrushBot蜘蛛爬虫屏蔽方式

查看访问日志时候发现有SemrushBot爬虫 屏蔽方法: 使用robots.txt文件是一种标准的协议,用于告诉搜索引擎哪些页面可以和不能被爬取,如想禁止Googlebot爬取整个网站的话,可以在该文件中添加以下内容: User-agent: Googlebot Disallow: / 对于遵循robots协议的蜘蛛…

护目镜佩戴检测识别算法

护目镜佩戴检测识别算法通过opencvpython网络深度学习模型,护目镜佩戴检测识别算法实时监测工人的护目镜佩戴情况,发现未佩戴或错误佩戴的情况,及时提醒调整。与C / C等语言相比,Python速度较慢。也就是说,Python可以使…