Owasp zap 中基于标头的身份验证

Posted

技术标签:

【中文标题】Owasp zap 中基于标头的身份验证【英文标题】:Header Based Authentication in Owasp zap 【发布时间】:2021-01-15 01:23:12 【问题描述】:

我正在尝试实现 Owasp Zap 扫描。但我找不到用于标头身份验证的脚本

如何为键值对添加标头身份验证,例如 key =api-key value = 123

    docker run --rm -v $(Agent.ReleaseDirectory)/docker:/zap/wrk/:rw -t ictu/zap2docker-weekly zap- 
     baseline.py \
      -t https://www.example.com/ProductDetails/v1/details?productId=123456 \
      -I -x governreport.xml \
       -r testreport.html \
      --hook=/zap/auth_hook.py \ 
        -z "auth.loginurl=https://www.example.com/ProductDetails/v1/details?productId=123456" \

我正在关注这篇文章:

http://www.winkell.co.uk/2019/10/28/zap-security-scanning-in-azure-devops-release-pipelines/

【问题讨论】:

不熟悉 Azure DevOps,但我在管道中使用 owasp/zap2docker-stable 图像。正确设置的标头实际上取决于应用程序需要什么(即我使用keycloak,它期望基于表单的身份验证来获取令牌)以及如何在hook 中处理它(我正在使用自定义zap_started 挂钩) . 没有得到您的最新信息,masseyb 的建议对您有帮助吗?或者,如果您有任何疑虑,请随时在此处分享。 @WalterQian-MSFT 是的,我仍在努力寻找解决方案 【参考方案1】:

要添加您想要的标题,您可以在 -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=Authorization \  
  -config replacer.full_list\\(0\\).regex=false \  
  -config replacer.full_list\\(0\\).replacement=123456789  

所以你的命令看起来像

    docker run --rm -v $(Agent.ReleaseDirectory)/docker:/zap/wrk/:rw -t ictu/zap2docker-weekly zap- 
 baseline.py \
  -t https://www.example.com/ProductDetails/v1/details?productId=123456 \
  -I -x governreport.xml \
   -r testreport.html \
  --hook=/zap/auth_hook.py \ 
    -z "auth.loginurl=https://www.example.com/ProductDetails/v1/details?productId=123456" \
  -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=api-key \  
  -config replacer.full_list\\(0\\).regex=false \  
  -config replacer.full_list\\(0\\).replacement=123

这样,您将在所有请求中添加标头 api-key: 123

参考:https://www.zaproxy.org/blog/2017-06-19-scanning-apis-with-zap/

【讨论】:

以上是关于Owasp zap 中基于标头的身份验证的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 OpenAPI 或 Swagger 规范的情况下,使用 OWASP ZAP 对 API 进行身份验证

使用 API 调用的 ZAP 身份验证

ZAP 中的 NTLM 身份验证

在 ZAP 工具中添加身份验证以攻击 URL

从 Zapier 对 Monday.com API 进行身份验证

基于 Spring Security 令牌的身份验证