在HTTPS网站上运行ZAP扫描的问题

问题描述

我在尝试为HTTPS网站设置zap扫描时遇到麻烦。代码就是这样-

from zapv2 import ZAPv2

def main():
    args = fetchArguments()

    zap = openZapProxy(args)

    sys.stdout.write('Creating a new session on ZAP server %s\n' % args.zap_host)
    zap.core.new_session("tempsession","true")

    
    sys.stdout.write('Accessing %s\n' % args.target)
    zap.urlopen(args.target)

if __name__ == '__main__':
    main()

通过TLS网站运行时,zap会在urlopen上引发错误-

Creating a new session on ZAP server http://<server>
Accessing https://<website>
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py",line 159,in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py",line 84,in create_connection
    raise err
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py",line 74,in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py",line 667,in urlopen
    self._prepare_proxy(conn)
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py",line 930,in _prepare_proxy
    conn.connect()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py",line 308,in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py",line 171,in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f5d4e1f9d30>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/requests/adapters.py",line 439,in send
    resp = conn.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py",line 724,in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py",in increment
    raise MaxRetryError(_pool,url,error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='https://<website>',port=443): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.',NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f5d4e1f9d30>: Failed to establish a new connection: [Errno 111] Connection refused')))

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
  File "/zap/pen-test-app.py",line 95,in <module>
    main()
  File "/zap/pen-test-app.py",line 56,in main
    zap.urlopen(args.target)
  File "/usr/local/lib/python3.8/site-packages/zapv2/__init__.py",line 145,in urlopen
    return requests.get(url,proxies=self.__proxies,verify=False,*args,**kwargs).text
  File "/usr/local/lib/python3.8/site-packages/requests/api.py",line 76,in get
    return request('get',params=params,**kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/api.py",line 61,in request
    return session.request(method=method,url=url,**kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py",line 530,in request
    resp = self.send(prep,**send_kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py",line 643,in send
    r = adapter.send(request,**kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/adapters.py",line 510,in send
    raise ProxyError(e,request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='https://<website>',NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f5d4e1f9d30>: Failed to establish a new connection: [Errno 111] Connection refused')))

进一步研究此错误,发现该线程中正在讨论类似的内容-Cannot connect to proxy error on requests.get() or requests.post() in python

现在的问题是,如何将headers = {'User-Agent':'Chrome'}传递给zap.urlopen,以查看其是否有效。还是有其他解决此特定问题的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)