问题标签 [zapproxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - ZAP docker 被动扫描结果
我使用命令创建了一个 Zap 容器(在 docker 内)
docker run -u zap -p 8080:8080 -i owasp/zap2docker-stable zap-x.sh -daemon -host 0.0.0.0 -port 8080 -config api.addrs.addr.name=.* -config api.addrs。 addr.regex=true -config api.key=
使用正确的 api 密钥。容器已启动并正常。
我制作了我的本机应用程序,它也在 docker 上运行,通过 Zap 容器代理所有 html 通信。我的目标是 Zap 被动地分析所有流量以解决安全问题。
问题是如何在不使用 UI 的情况下从这个 ZAP 容器中检索被动扫描仪的数据?生成被动结果报告的命令是什么?
zap - 无法使用 Zap 代理在给定上下文上启动主动扫描 (ascan)
试图在网站上自动执行 zap 代理扫描。下面是我的流程
- 启动 Zap 代理
- 创建新会话 (
/JSON/core/action/newSession/?apikey=12345&name=NewSession&overwrite=true
) - 创建新上下文 (
/JSON/context/action/newContext/?apikey=12345&contextName=NewContext
) - 将包含和排除正则表达式 URL 模式添加到上下文 (
/JSON/context/action/setContextRegexs/?apikey=12345&contextName=NewContext&incRegexs=[https://myowsapjuiceshop.herokuapp.com/*]&excRegexs=[^(?:(?!http.*://myowsapjuiceshop.herokuapp.com).*).$]
) - 将技术添加到上下文 (
/JSON/context/action/includeContextTechnologies/?apikey=12345&contextName=NewContext&technologyNames=Db.MySQL%2CLanguage.Java%2COS.Linux%2CWS.Tomcat
) - 使用代理集运行 UI 测试
- 运行主动扫描 (
/JSON/ascan/action/scan/?apikey=12345&url=&recurse=&inScopeOnly=&scanPolicyName=&method=&postData=&contextId=2
) // 2 是正确的 contextID - 等待主动扫描完成 (
/JSON/ascan/view/status/?apikey=12345&scanId=5
) // 5 是我应该从第 7 步获得的扫描 ID(运行主动扫描响应) - 获取警报 json (
/JSON/alert/view/alerts/?apikey=12345&baseurl=&start=&count=&riskId=
)
在第 7 步之前一切都很好,我停留在第 7 步。基于文档“针对给定的 URL 和/或上下文运行活动扫描程序......”。我的理解是,我可以针对上下文运行主动扫描,并且当提到 ContextId 时,URL 是可选的。
但是,当我点击 api 以使用正确的 apikey 和 contextId 运行主动扫描时 /JSON/ascan/action/scan/?apikey=12345&url=&recurse=&inScopeOnly=&scanPolicyName=&method=&postData=&contextId=2
回应是{"code":"missing_parameter","message":"Missing Parameter"}
我在 zap 日志中遇到错误
我想对记录的所有匹配的 URL 运行主动 ascan,包括和排除我在上下文中设置的正则表达式。任何帮助将不胜感激。
zap - 记录的 api 调用的 ZAP 身份验证
我通过 Zap 代理我的 UI 测试来自动化安全扫描。对于每次安全扫描运行,都会创建新的 zap 会话并代理请求。
在我们的应用程序中,来自登录 api 响应的访问令牌设置在authentication
标头中以进行身份验证。当我通过 zap 代理我的测试时,标头也会与请求负载、url 等一起记录并存储在 ZAP 中。
如果
- zap 与请求一起记录的令牌在主动扫描期间仍然有效(未过期或未失效)
- 标头从 ascan 攻击向量中排除(这是默认设置)
我假设我可以在 api(也需要身份验证)上进行主动扫描工作,而无需在 Context 中设置身份验证、用户、强制用户、会话管理等。
我不确定如何验证这一点!
任何人都可以在下面提供帮助
- 我上面关于“记录的标题足以让 ZAP 扫描”的假设在我的场景中是否正确?(只有有效载荷、参数等会被篡改)
- 在 Context 中为自动安全扫描设置身份验证、用户、强制用户、会话管理等有什么好处?
先感谢您。
docker - 使用 docker 映像时,zapproxy 全扫描未运行提供的脚本
我想在 zap 完整扫描期间对每个请求启动一个 httpsender 脚本。所以我做了
我的 http_paramerters.js 是
预期行为
我的脚本必须被执行。
zap.log 文件中的错误
日志中没有错误,如下所示
jenkins - OWASP ZAP Jenkins 作业未提供所有警报结果
我是 OWASP ZAP 的新手。我已经完成了 ZAP 桌面设置,我在其中向 Web 应用程序主机注入端口,完成蜘蛛扫描大约需要 5-6 分钟,当我看到警报部分时,我看到一个中等警报和很多低警报。
但是,我尝试将 ZAP 与 Jenkins 集成,我看到工作在几秒钟内完成,并且它提供的警报报告与 OWASP ZAP 警报数据的数据不匹配。 我在 OWASP ZAP 桌面上看到一个中等警报,因为我在 Jenkins ZAP 作业报告上看不到任何中等警报。
此外,Spider Scan 显示 0% Scan Progress 并且未显示 Job % status 的完成。我在这里想念什么?为什么它没有显示 100% 以及为什么没有在 Jenkins 中捕获所有警报。
日志中也出现以下错误。
authentication - 使用 ZAP-CLI 创建 ZAP 上下文
我计划使用ZAP CLI自动执行整个 ZAP 扫描
ZAP 使用上下文进行基于表单的身份验证。可以使用 ZAP UI 轻松手动创建此上下文。但是我需要自动化这个上下文创建,以便可以使用自动化扫描任何具有表单身份验证的应用程序。
有什么方法/解决方法可以这样做吗?
提前致谢。
docker - 从命令行 docker ZAProxy 保存请求/响应
是否可以保存从 docker 进行的基线扫描的请求/响应?我运行这样的扫描:
我想保存请求/响应以进行更详尽的分析。
提前致谢。
docker - 未通过 ZAP API 扫描 docker 映像进行身份验证
最初我尝试通过 ZAP UI 验证 API。我有一个文件夹结构
上下文,wrk->script->authentication->bearer-token.js,wrk->script->httpsender->header-set-bearer-token.js,wrk->script->zap_hooks.py。
在进行身份验证时,我选择了 ScriptBasedAuthentication 并加载了 Bearer-token.js 中提供的脚本、提供的令牌提供者 URL、API 密钥和 grantType。导入 Swagger.json 并运行 Active Scan。
ZAP UI 一切正常。
在尝试使用 ZAP API Scan docker 映像时,我收到警报
服务器返回响应码 401。
这可能表明应用程序无法正确处理意外输入。
由“HTTP 响应代码错误警报”脚本引发
正在扫描所有 api,但未对其进行身份验证。我正在运行的命令是
docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py -t test.json -f openapi -r api-scan-report.html -z “ -config replacer.full_list(0).description=auth1 -config replacer.full_list(0).enabled=true -config replacer.full_list(0).matchtype=REQ_HEADER -config replacer.full_list(0).matchstr=授权 -config replacer.full_list(0).regex=false -config 'replacer.full_list(0).replacement=Bearer XXXXXXXXXXXXXXXXXXXXXX'”</h2>
“Bearer TokenXXXXX”之间有空格,所以我参考了这个https://github.com/zaproxy/zaproxy/issues/4332#issuecomment-367326344
但这对我不起作用。Bearer 令牌再次仅在 5 分钟内有效,然后过期。
如果我提供--hook=zap_hooks.py,它会说在/zap/zap_hooks.py 找不到自定义钩子文件 我从一个星期开始尝试这个,但没有运气。请帮助我如何验证我的 API 可以摆脱 401(未经授权)
请帮我解决一下这个。提前致谢。
node.js - Node JS 中的 ZAP 集成面临问题
我是 ZAP 和 node.js 的新手,
我的目标是扫描任何 web 应用程序中的漏洞并生成报告 (JSON)。
我尝试使用下面的代码,它给了我错误
我面临的错误:
另外,我将非常感谢:
- 有人可以用 node.js 分享与 Zap 相关的任何示例吗
- 每当我运行上面的示例时,是否有必要保持 ZAP 工具打开和运行。