0

我正在尝试通过 Docker 使用 zap 代理 将其拉下来:

 docker pull owasp/zap2docker-stable

使用“从 Docker 容器外部访问 API”部分中描述的命令运行它:

 docker run -p 8090:8090 -i owasp/zap2docker-stable zap.sh -daemon -port 8090 -host 0.0.0.0

但我似乎无法连接到它。当我运行时docker inspect <CONTAINER ID> | grep IPAddress,我得到 172.17.0.2(编辑:我可以运行扫描,我在 Mac 上将 ZAP_SERVER_PROXY 从更改172.17.0.2:80900.0.0.0:8090,因此将其编辑为下面的代码示例)。所以我的脚本的开头看起来像:

import os
import time
from pprint import pprint
from zapv2 import ZAPv2

BASE_URL = os.getenv('BASE_URL', 'https://example.appspot.com/')
ZAP_SERVER_PROXY = os.getenv('ZAP_SERVER_PROXY', '0.0.0.0:8090')
API_KEY = ''

zap = ZAPv2(
    # apikey=API_KEY,
    proxies={
        'http': "http://%s" % ZAP_SERVER_PROXY,
        'https': "https://%s" % ZAP_SERVER_PROXY
    }
)

现在只是尝试使用 python 通过终端运行它并不断收到连接被拒绝的错误。我也试过用API_KEY注释掉的部分,有没有人知道你在哪里找到在文档中看不到的。

注意:我在 macos 上,但运行docker-machine ip default没有做任何事情,所以不确定如何进入链接页面的底部和 docker 新手。仿照自己的例子进行测试。运行virtualenv -p python3 env不确定是否会影响它。

4

2 回答 2

3

此外,您将需要禁用 ip 过滤 -有关如何执行此操作的详细信息,请参见此处,基本上只需使用以下内容:

docker run -p 8090:8090 -i owasp/zap2docker-stable zap.sh -daemon -port 8090 -host 0.0.0.0 -config api.disablekey=true -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true

小心,因为它允许从任何 ip 连接到 Zaproxy,这在隔离的 docker 容器中运行时很好。

于 2017-07-11T05:51:17.403 回答
1

当您在脚本中注释掉 API 密钥参数时,请尝试使用 -config api.disablekey=true.

docker run -p 8090:8090 -i owasp/zap2docker-stable zap.sh -daemon -port 8090 -host 0.0.0.0 -config api.disablekey=true

于 2017-07-11T04:14:29.607 回答