如何在命令行中运行 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 扫描?的主要内容,如果未能解决你的问题,请参考以下文章