首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扫描时OWASP/ZAP悬空

扫描时OWASP/ZAP悬空
EN

Stack Overflow用户
提问于 2019-02-14 14:07:00
回答 3查看 4.6K关注 0票数 1

我正在试用OWASP/ZAP,看看它是否可以用于我们的项目,但我无法使它工作--我不知道我做错了什么,文档真的没有帮助。我正在尝试的是在windows机器上本地运行在码头容器中的api上运行扫描,所以我运行命令:docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-baseline.py -t http://172.21.0.2:8080/swagger.json -g gen.conf -r testreport.html,ip 172.21.0.2是api容器的IPAddress,甚至用localhost127.0.0.1来尝试。

但是它只是挂在以下日志消息中:

代码语言:javascript
复制
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
Feb 14, 2019 1:43:31 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.

什么都没有发生,我的zap码头容器处于不健康的状态,过了一段时间,它就崩溃了,并以一堆NullPointerExceptions结束。zap是否只适用于linux,在windows机器上运行它时,我特别需要这样做?我不明白为什么这不起作用,即使我特别遵循https://github.com/zaproxy/zaproxy/wiki/Docker中的指导方针

编辑1我最近一次尝试直接针对我的主机ip地址,以及我公开api的端口给了我以下错误:

代码语言:javascript
复制
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
Feb 14, 2019 2:12:07 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Total of 3 URLs
ERROR Permission denied
2019-02-14 14:12:57,116 I/O error(13): Permission denied
Traceback (most recent call last):
  File "/zap/zap-baseline.py", line 347, in main
    with open(base_dir + generate, 'w') as f:
IOError: [Errno 13] Permission denied: '/zap/wrk/gen.conf'
Found Java version 1.8.0_151
Available memory: 3928 MB
Setting jvm heap size: -Xmx982m
213 [main] INFO org.zaproxy.zap.DaemonBootstrap
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-14 15:38:37

这里的主要错误是:

IOError: Errno 13被拒绝:'/zap/wrk/gen.conf‘

这意味着脚本不能写入安装在/zap/wrk上的gen.conf文件。

当cwd未挂载时,您有写入访问权吗?

票数 2
EN

Stack Overflow用户

发布于 2019-07-23 15:47:54

当您使用: docker运行码头时,运行-v $(pwd):/zap/wrk/:rw .您正在将docker映像中的/zap/wrk/目录映射到正在运行docker的计算机的当前工作目录(cwd)。

我认为问题在于您的当前用户没有对cwd的写访问权。

试下命令,希望它能解决问题。

$docker run --用户$(id -u):$(id -g) -v $(pwd):/zap/wrk/:rw --rm -t owasp/zap2docker-稳定的zap-baseline.py -t url -g gen.conf -r testreport.html

票数 5
EN

Stack Overflow用户

发布于 2022-01-26 13:37:49

原因是,如果使用-r参数,则zap将尝试在位置/zap/wrk/生成文件report.html。为了使这个工作正常进行,我们必须将一个目录挂载到这个位置/zap/wrk

但是当您这样做时,zap容器能够在挂载目录上执行写操作是很重要的。

下面是使用gitlab ci yml的工作解决方案。不过,我从使用image: owasp/zap2docker-stable的方法开始,然后必须使用普通的docker命令来执行它。

代码语言:javascript
复制
  test_site:
          stage: test
          image: docker:latest
          script:
          # The folder zap-reports created locally will be mounted to owasp/zap2docker docker container,
          # On execution it will generate the reports in this folder. Current user is passed so reports can be generated"
            - mkdir zap-reports
            - cd zap-reports
            - docker pull owasp/zap2docker-stable:latest || echo
            - docker run  --name zap-container --rm -v $(pwd):/zap/wrk -u $(id -u ${USER}):$(id -g ${USER}) owasp/zap2docker-stable zap-baseline.py -t "https://example.com" -r report.html
          artifacts:
            when: always
            paths:
              - zap-reports
          allow_failure: true

所以上面的代码中的诀窍是

  1. 挂载本地目录zap--向/zap/wrk报告,如$(pwd):/zap/wrk中所示
  2. 将主机上的当前用户和组传递给停靠器容器,以便进程使用相同的用户/组。这允许在从本地主机挂载的目录上写入报告。这是由-u $(id -u ${USER}):$(id -g ${USER})完成的

下面是使用image: owasp/zap2docker-stable的工作代码

代码语言:javascript
复制
 test_site:
  variables:
    GIT_STRATEGY: none
  stage: test
  image:
    name: owasp/zap2docker-stable:latest
  before_script:
    - mkdir -p /zap/wrk
  script:
    - zap-baseline.py -t "https://example.com" -g gen.conf -I -r testreport.html
    - cp /zap/wrk/testreport.html testreport.html
  artifacts:
    when: always
    paths:
      - zap.out
      - testreport.html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54692312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档