【问题标题】:OWASP/ZAP dangling when trying to scan尝试扫描时 OWASP/ZAP 悬空
【发布时间】:2023-10-30 22:31:01
【问题描述】:

我正在尝试 OWASP/ZAP,看看它是否可以用于我们的项目,但我无法让它工作我不知道我做错了什么,文档真的没有帮助。我正在尝试对我的 api 运行扫描,该 api 在我的 windows 机器上本地的 docker 容器中运行,所以我运行命令: 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 容器的 IP 地址,即使尝试使用 localhost127.0.0.1

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

_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 docker 容器处于不健康状态,一段时间后它只是崩溃并以一堆 NullPointerExceptions 告终。 zap docker 是否仅适用于 linux,在 Windows 机器上运行它时我需要做些什么?即使我特别遵循https://github.com/zaproxy/zaproxy/wiki/Docker 中的指南,我也不明白为什么这不起作用

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

_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

【问题讨论】:

    标签: owasp zap


    【解决方案1】:

    当你运行 docker 时: docker run -v $(pwd):/zap/wrk/:rw ... 您正在将 docker 映像中的 /zap/wrk/ 目录映射到正在运行 docker 的机器的当前工作目录 (cwd)。

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

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

    $docker run --user $(id -u):$(id -g) -v $(pwd):/zap/wrk/:rw --rm -t owasp/zap2docker-stable zap-baseline。 py -t https://your_url -g gen.conf -r testreport.html

    【讨论】:

      【解决方案2】:

      这里的关键错误是:

      IOError: [Errno 13] Permission denied: '/zap/wrk/gen.conf'

      这意味着脚本无法写入您挂载在 /zap/wrk 上的 gen.conf 文件

      当 cwd 没有挂载时,你有写权限吗?

      【讨论】:

      • 是的,我知道这一点,但谢谢。我在 Windows 上使用 cygwin,所以我只需要弄清楚如何为 docker 容器启用对我的 pwd 的写访问权限,但这可能更像是一个特定的docker for windows 问题,我在安装卷之前遇到了一些其他问题在 Windows 中,无论如何,很抱歉浪费您的时间。
      • 没关系,别怕顶个问题:)