如何在命令行中运行 ZAP 扫描?

Posted

技术标签:

【中文标题】如何在命令行中运行 ZAP 扫描?【英文标题】:How to run ZAP scan in command line? 【发布时间】:2021-08-03 11:59:24 【问题描述】:

我正在使用 OWASP ZAP 工具在 asp.net 核心网络应用程序上运行笔测试。当我使用 Owasp ZAP 的 windows 应用程序运行测试时,测试运行良好并给出结果,但是当我尝试使用命令行运行测试时,我看到了这个异常。

raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x000001CCBD907D60>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it

为什么会发生这种情况以及如何纠正这种情况?

我将 ZAP_PATH 环境变量更改为 zap.sh 所在的文件夹。现在我得到了一个不同的例外:

 raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

【问题讨论】:

“无法建立连接,因为目标机器主动拒绝它”听起来很相关。您是否尝试过使用类似 curl 的工具从命令行连接到目标应用程序?你是如何开始 ZAP 的?您不需要设置 ZAP_PATH 我想 curl 是一个 Linux 命令。我开始使用 zap:zap-cli active-scan "website url" @SimonBennetts Curl 在你能想到的几乎所有平台上都可用。仅供参考,zap-cli 是第三方工具,不受 Zap 核心团队的支持。我们建议您自动化 ZAP 的方法在 zaproxy.org/docs/automate 上有详细说明 @SimonBennetts 我可以使用 powershell 脚本开始主动扫描网站吗? 是的,但这完全取决于您想要做什么。我在上面发布的链接显示了所有推荐的选项。您可以从任何命令行运行主动扫描,但您不会获得与使用打包扫描或直接驱动 ZAP API 一样多的控制权。自动化框架将是推荐的选项,但仍处于早期阶段。 【参考方案1】:

按照文档 here 和 here 我设法从 Windows 命令行运行基本扫描。

从安装 ZAP 的目录中,在我的情况下为 C:\Program Files\OWASP\Zed Attack Proxy,运行以下命令:

PS C:\Program Files\OWASP\Zed Attack Proxy> java -jar zap-2.10.0.jar -cmd -quickurl http://example.com/ -quickprogress

【讨论】:

以上是关于如何在命令行中运行 ZAP 扫描?的主要内容,如果未能解决你的问题,请参考以下文章

尝试扫描时 OWASP/ZAP 悬空

如何在命令行中从脚本运行函数?

如何在命令行中运行 Photoviewer.dll

在windows命令行中如何运行c程序的文本

在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]

如何在 Windows 命令行中使用参数运行 Python 脚本