Windows下ZAP API扫描挂载zap/wrk目录及相关报错解决咨询
报错根因说明
第一个Invalid option v : option -v not recognized报错是参数顺序错误导致:
Docker执行命令分为两个参数区间:
docker run [Docker自有参数] [镜像名] [传给容器内运行程序的参数]
你将Docker专属的目录挂载参数-v $(pwd):/zap/wrk/:rw放在了镜像名之后,被识别为zap-api-scan.py的入参,而ZAP扫描脚本本身没有-v参数,因此抛出报错。
问题1解答
ZAP API扫描没有专属的目录挂载参数,目录挂载是Docker原生能力,你不需要更换ZAP相关参数,仅调整参数顺序即可:将-v $(pwd):/zap/wrk/:rw放在镜像名owasp/zap2docker-weekly之前,即可正常实现容器内/zap/wrk目录和宿主机当前目录的映射,扫描生成的报告将自动导出到宿主机当前目录。
问题2解答
.zap_hooks.py是ZAP提供的扫描钩子文件,用于自定义扫描逻辑(例如修改请求头、过滤特定扫描规则、自定义告警处理逻辑等),如果你没有自定义扫描的需求,完全不需要创建该文件,对应的报错仅为提示信息,不会影响正常扫描执行和报告输出。
如果确实需要使用钩子功能:
- 推荐在宿主机当前工作目录创建该文件,通过已挂载的
/zap/wrk目录映射到容器内部,启动扫描时添加参数-z "-hook /zap/wrk/.zap_hooks.py"指定钩子路径即可,无需在容器内的/home/zap/路径下创建; - 你找到的Hook示例是官方提供的正确模板,可以直接参考使用。
修正后的可执行命令
docker run -t -v $(pwd):/zap/wrk/:rw owasp/zap2docker-weekly zap-api-scan.py -t http://100.100.333.888:0000/account?field4=4488082040118"&"field7=GENERIC01"&"field10=ABC076 -f openapi -r ZAP_Report.html
内容的提问来源于stack exchange,提问作者Golide
相关产品推荐
相关产品推荐

