zap命令怎么用?详细操作步骤与新手指南

ZAP(Zed Attack Proxy)是一款开源的Web应用安全扫描工具,广泛应用于渗透测试和安全审计中,除了图形界面(GUI)操作外,ZAP还提供了强大的命令行接口(CLI),支持自动化扫描、批量任务处理和脚本集成,尤其适合DevSecOps流程中的安全扫描需求,本文将详细介绍如何使用ZAP命令,从环境准备到核心功能实战,帮助读者快速掌握CLI操作。

怎么用zap命令

安装与环境准备

在使用ZAP命令前,需先完成ZAP的安装与环境配置,ZAP支持Windows、macOS和Linux系统,安装步骤略有不同:

安装ZAP

  • Windows:访问ZAP官网(https://www.zaproxy.org/download/)下载Windows安装包(zip格式),解压到指定目录,进入bin目录,双击zap.bat启动(首次启动会初始化配置)。
  • macOS:通过Homebrew安装,命令为brew install zap,安装后可通过zap.sh启动。
  • Linux:通过包管理器安装(如Ubuntu/Debian:sudo apt-get install zap),或下载tar.gz包解压后运行./zap.sh

验证安装

启动ZAP后,默认以无头模式(Headless)运行CLI,可通过以下命令检查是否成功:

zap.sh -version

若返回ZAP版本号(如14.0),则表示安装成功。

配置代理(可选)

如果扫描目标需要通过代理访问,需在ZAP中配置代理参数:

zap.sh -host 127.0.0.1 -port 8080 -config proxy.host=127.0.0.1 -config proxy.port=8080

ZAP核心命令详解

ZAP命令通过zap.sh(Linux/macOS)或zap.bat(Windows)调用,核心功能包括扫描、策略管理、报告生成等,以下按功能模块分类说明常用命令:

目标管理

扫描前需定义目标URL,ZAP支持通过命令添加、列出目标:

  • 添加目标
    zap.sh -cmd -target -u "http://example.com" -recurse

    参数说明:-u指定目标URL,-recurse是否递归扫描子域名。

  • 列出目标
    zap.sh -cmd -target -list
  • 删除目标
    zap.sh -cmd -target -d "http://example.com"

被动扫描(Spider)

Spider用于被动发现目标URL,通过模拟用户访问收集页面链接:

怎么用zap命令

zap.sh -cmd -spider -u "http://example.com" -m 10 -t 5

参数说明:

  • -m:最大爬取子节点数(默认50);
  • -t:线程数(默认2,提高速度可增加,但可能触发反爬);
  • -depth:爬取深度(默认3)。

主动扫描(Active Scan)

主动扫描通过发送恶意请求检测漏洞,是ZAP的核心功能:

zap.sh -cmd -ascan -u "http://example.com" -sc "Default Policy" -ra -r 1

参数说明:

  • -sc:扫描策略(如Default PolicyOWASP Top 10);
  • -ra:递归扫描所有子节点;
  • -r:扫描重试次数(默认1);
  • -ajaxspider:启用Ajax Spider(适用于动态页面)。

策略管理

ZAP支持自定义扫描策略,可调整规则开关、阈值等:

  • 列出策略
    zap.sh -cmd -policy -list
  • 启用/禁用规则
    zap.sh -cmd -policy -setrule -r "XSS Scan Rule" -s "ENABLED"

    参数:-r规则名称,-s状态(ENABLED/DISABLED)。

  • 设置策略阈值
    zap.sh -cmd -policy -setthreshold -r "SQL Injection" -t "HIGH"

报告生成

扫描完成后,可生成多种格式的报告(HTML、XML、JSON等):

zap.sh -cmd -report -o report.html -f html -r "Full Report" -include confidence="High,Medium" -include risk="High"

参数说明:

  • -o:输出文件路径;
  • -f:报告格式(html、xml、json等);
  • -r:报告模板(Full ReportSummary等);
  • -include:过滤条件(如置信度、风险等级)。

会话管理

ZAP支持保存和加载扫描会话,便于复现或增量扫描:

怎么用zap命令

  • 新建会话
    zap.sh -cmd -session -new "MySession"
  • 加载会话
    zap.sh -cmd -session -load "MySession"
  • 保存会话
    zap.sh -cmd -session -save "MySession"

其他常用命令

  • 查看历史记录
    zap.sh -cmd -history -list
  • 强制访问URL
    zap.sh -cmd -accessurl -u "http://example.com/api"
  • 退出ZAP
    zap.sh -cmd -exit

高级功能与实战案例

结合脚本自动化扫描

ZAP CLI支持通过脚本(如Shell、Python)批量执行命令,以下是一个简单的Shell脚本示例,实现“启动ZAP→添加目标→爬取→主动扫描→生成报告”的完整流程:

#!/bin/bash
# 启动ZAP(无头模式,端口8080)
./zap.sh -daemon -port 8080 -host 127.0.0.1
# 等待ZAP启动完成
sleep 10
# 添加目标
./zap.sh -cmd -target -u "http://testphp.vulnweb.com" -recurse
# 执行Spider爬取
./zap.sh -cmd -spider -u "http://testphp.vulnweb.com" -m 20
# 执行主动扫描(使用OWASP策略)
./zap.sh -cmd -ascan -u "http://testphp.vulnweb.com" -sc "OWASP Top 10 2021" -ra
# 等待扫描完成
sleep 30
# 生成HTML报告
./zap.sh -cmd -report -o zap_report.html -f html -r "Full Report"
# 退出ZAP
./zap.sh -cmd -exit
echo "扫描完成,报告已生成:zap_report.html"

实战案例:扫描Web应用并生成报告

以扫描http://testphp.vulnweb.com(一个测试用漏洞网站)为例,步骤如下:

步骤 命令 操作说明
启动ZAP CLI ./zap.sh -daemon -port 8080 无头模式启动,避免弹出GUI窗口
添加目标 ./zap.sh -cmd -target -u "http://testphp.vulnweb.com" -recurse 添加目标并允许递归扫描
执行Spider ./zap.sh -cmd -spider -u "http://testphp.vulnweb.com" -m 30 爬取页面,最多30个子节点
主动扫描 ./zap.sh -cmd -ascan -u "http://testphp.vulnweb.com" -sc "Default Policy" -ra -r 2 使用默认策略主动扫描,重试2次
查看扫描进度 ./zap.sh -cmd -ascan -status 返回扫描状态(如100%表示完成)
生成报告 ./zap.sh -cmd -report -o testphp_report.html -f html -r "Full Report" -include risk="High,Medium" 生成包含中高风险漏洞的HTML报告
退出ZAP ./zap.sh -cmd -exit 关闭ZAP进程

执行完成后,当前目录会生成testphp_report.html,打开即可查看漏洞详情(如XSS、SQL注入等)。

相关问答FAQs

Q1:ZAP CLI和GUI版本的主要区别是什么?如何选择?

A
ZAP CLI(命令行)和GUI(图形界面)的核心功能一致,但适用场景不同:

  • CLI优势
    • 支持自动化脚本集成(如Jenkins、GitLab CI),适合DevSecOps流程;
    • 无需图形界面资源,可在服务器或容器中运行;
    • 批量处理任务效率高(如扫描多个目标)。
  • GUI优势
    • 可视化展示扫描结果,便于手动分析漏洞细节;
    • 支持实时交互(如手动触发请求、修改请求参数);
    • 适合初学者或需要精细化操作的场景。
      选择建议
  • 自动化扫描、CI/CD集成→选CLI;
  • 手动渗透测试、漏洞复现→选GUI。

Q2:使用ZAP CLI扫描时出现“连接超时”错误,如何解决?

A
“连接超时”通常由网络问题或ZAP配置不当导致,可按以下步骤排查:

  1. 检查目标URL可达性
    使用curlping命令确认目标是否可访问:

    curl -I http://example.com

    若无法访问,需检查网络或目标服务器状态。

  2. 调整ZAP代理设置
    确保ZAP代理与目标网络兼容,可通过以下命令修改超时参数(默认30秒):

    zap.sh -config connection.timeout=60
  3. 增加重试次数
    在主动扫描命令中添加-retries参数(如-retries 3),避免因临时超时中断扫描:

    zap.sh -cmd -ascan -u "http://example.com" -retries 3
  4. 关闭防火墙/杀毒软件
    部分安全软件可能拦截ZAP的网络请求,临时关闭后测试。
    若问题仍存在,可查看ZAP日志(-log参数)定位具体错误:

    ./zap.sh -daemon -port 8080 -log level=DEBUG -log file=zap.log

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20504.html

(0)
酷番叔酷番叔
上一篇 8小时前
下一篇 7小时前

相关推荐

  • 如何在H3C交换机命令行关闭端口?

    详细操作步骤基础关闭端口命令进入系统视图<H3C> system-view # 切换至配置模式[H3C]进入目标端口视图[H3C] interface gigabitethernet 1/0/1 # 替换为实际端口号(如GE1/0/24)执行关闭操作[H3C-GigabitEthernet1/0/1……

    2025年7月28日
    1600
  • 命令提示符打不开怎么办

    可通过开始菜单搜索”cmd”打开,或按Win+R键输入”cmd”回车启动,亦可在文件资源管理器地址栏直接输入”cmd”执行。

    2025年7月9日
    2500
  • Ghost命令行工具如何快速备份系统?

    在Windows环境下,使用命令提示符将ISO文件直接转换为Ghost镜像(.GHO格式)无法一步完成,因为ISO是光盘镜像格式,而Ghost是磁盘/分区备份格式,但可通过以下步骤间接实现,核心思路是将ISO内容部署到硬盘分区,再用Ghost备份该分区,以下是详细操作流程:虚拟光驱软件(如Windows自带挂载……

    2025年7月23日
    1400
  • 如何快速掌握CMD命令提示符?

    按下 Win + R 组合键打开“运行”窗口输入 cmd 后按回车,启动命令提示符在黑色窗口中输入以下命令:shutdown /s /t 0/s 表示关闭计算机(非重启)/t 0 设定倒计时为0秒(立即执行)按回车键,系统将立即开始关机流程通过运行窗口快速执行直接按 Win + R 打开运行框输入:shutdo……

    2025年7月19日
    2000
  • 怎么用命令删除不同列的重复值

    使用 awk 命令结合条件判断来删除不同列的重复值,具体操作需根据

    2025年8月18日
    700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信