问题标签 [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.

0 投票
1 回答
547 浏览

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 容器中检索被动扫描仪的数据?生成被动结果报告的命令是什么?

0 投票
1 回答
846 浏览

zap - 无法使用 Zap 代理在给定上下文上启动主动扫描 (ascan)

试图在网站上自动执行 zap 代理扫描。下面是我的流程

  1. 启动 Zap 代理
  2. 创建新会话 ( /JSON/core/action/newSession/?apikey=12345&name=NewSession&overwrite=true)
  3. 创建新上下文 ( /JSON/context/action/newContext/?apikey=12345&contextName=NewContext)
  4. 将包含和排除正则表达式 URL 模式添加到上下文 ( /JSON/context/action/setContextRegexs/?apikey=12345&contextName=NewContext&incRegexs=[https://myowsapjuiceshop.herokuapp.com/*]&excRegexs=[^(?:(?!http.*://myowsapjuiceshop.herokuapp.com).*).$])
  5. 将技术添加到上下文 ( /JSON/context/action/includeContextTechnologies/?apikey=12345&contextName=NewContext&technologyNames=Db.MySQL%2CLanguage.Java%2COS.Linux%2CWS.Tomcat)
  6. 使用代理集运行 UI 测试
  7. 运行主动扫描 ( /JSON/ascan/action/scan/?apikey=12345&url=&recurse=&inScopeOnly=&scanPolicyName=&method=&postData=&contextId=2) // 2 是正确的 contextID
  8. 等待主动扫描完成 ( /JSON/ascan/view/status/?apikey=12345&scanId=5) // 5 是我应该从第 7 步获得的扫描 ID(运行主动扫描响应)
  9. 获取警报 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,包括和排除我在上下文中设置的正则表达式。任何帮助将不胜感激。

0 投票
1 回答
131 浏览

zap - 记录的 api 调用的 ZAP 身份验证

我通过 Zap 代理我的 UI 测试来自动化安全扫描。对于每次安全扫描运行,都会创建新的 zap 会话并代理请求。

在我们的应用程序中,来自登录 api 响应的访问令牌设置在authentication标头中以进行身份​​验证。当我通过 zap 代理我的测试时,标头也会与请求负载、url 等一起记录并存储在 ZAP 中。

如果

  1. zap 与请求一起记录的令牌在主动扫描期间仍然有效(未过期或未失效)
  2. 标头从 ascan 攻击向量中排除(这是默认设置)

我假设我可以在 api(也需要身份验证)上进行主动扫描工作,而无需在 Context 中设置身份验证、用户、强制用户、会话管理等。

我不确定如何验证这一点!

任何人都可以在下面提供帮助

  1. 我上面关于“记录的标题足以让 ZAP 扫描”的假设在我的场景中是否正确?(只有有效载荷、参数等会被篡改)
  2. 在 Context 中为自动安全扫描设置身份验证、用户、强制用户、会话管理等有什么好处?

先感谢您。

0 投票
1 回答
539 浏览

docker - 使用 docker 映像时,zapproxy 全扫描未运行提供的脚本

我想在 zap 完整扫描期间对每个请求启动一个 httpsender 脚本。所以我做了

我的 http_paramerters.js 是

预期行为

我的脚本必须被执行。

zap.log 文件中的错误

日志中没有错误,如下所示

0 投票
0 回答
163 浏览

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 中捕获所有警报。

日志中也出现以下错误。

0 投票
1 回答
160 浏览

authentication - 使用 ZAP-CLI 创建 ZAP 上下文

我计划使用ZAP CLI自动执行整个 ZAP 扫描

ZAP 使用上下文进行基于表单的身份验证。可以使用 ZAP UI 轻松手动创建此上下文。但是我需要自动化这个上下文创建,以便可以使用自动化扫描任何具有表单身份验证的应用程序。

有什么方法/解决方法可以这样做吗?

如何使用 ZAP UI 创建 ZAP 上下文

提前致谢。

0 投票
0 回答
39 浏览

docker - 从命令行 docker ZAProxy 保存请求/响应

是否可以保存从 docker 进行的基线扫描的请求/响应?我运行这样的扫描:

我想保存请求/响应以进行更详尽的分析。

提前致谢。

0 投票
1 回答
340 浏览

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(未经授权)

请帮我解决一下这个。提前致谢。

0 投票
1 回答
60 浏览

node.js - Node JS 中的 ZAP 集成面临问题

我是 ZAP 和 node.js 的新手,
我的目标是扫描任何 web 应用程序中的漏洞并生成报告 (JSON)。

我尝试使用下面的代码,它给了我错误

我面临的错误:

另外,我将非常感谢:

  1. 有人可以用 node.js 分享与 Zap 相关的任何示例吗
  2. 每当我运行上面的示例时,是否有必要保持 ZAP 工具打开和运行。
0 投票
1 回答
101 浏览

owasp - 在运行 owasp ZAP scanAsuserAPI 时为用户获取身份验证失败

我使用基于表单的身份验证使用 ZAP Desktop,zap 在桌面应用程序上运行得非常好。然而,由于我使用的 Web 应用程序也有 _csrf_token 与用户名和密码一起传递,所以我选择使用 selenium 通过手动身份验证来自动化它。

以下是我得到的错误 -

我的代码如下所示 -

我在上面的代码中遗漏了什么吗?我根本无法对用户进行身份验证。

在此处输入图像描述