如何阻止OWASP ZAP标准模式扫描时访问外部URL?
OWASP ZAP外部URL访问相关问题解答
ZAP是否实际对外部URL执行了扫描?
三类记录对应的实际行为完全不同,绝大多数不属于有效扫描动作:
- 传统Spider中标记为Out of Scope的外部URL:没有执行扫描。这部分只是爬虫解析页面源码时识别到的外链地址,标记超出范围后会直接跳过,不会发起任何探测请求,相关记录只是爬取过程的日志留存。
- AJAX Spider中返回403的外部URL:不属于ZAP发起的扫描请求。AJAX Spider基于真实浏览器驱动工作,渲染本地页面时浏览器会自动加载页面引用的CDN、第三方脚本等外部资源,这类请求和普通用户打开你本地网站时触发的资源加载行为完全一致,不是ZAP主动发起的漏洞探测。
- Active Scan栏出现的
content-signature-2.cdn.mozilla.net记录:和你的站点扫描无关。这是ZAP内置的Firefox浏览器组件启动时自发的签名校验请求,不会被纳入主动扫描的漏洞检测队列。
如何配置彻底避免访问外部地址
按以下优先级配置即可完全锁死扫描范围:
- 配置上下文范围
在站点树右键点击http://127.0.0.1:8000,选择「包含在上下文中」-「默认上下文」,打开上下文设置的「范围」标签页,确认仅保留匹配http://127.0.0.1:8000.*的规则,删除其他所有范围条目,勾选扫描时仅攻击范围内目标。 - 分模块设置范围限制
- 传统爬虫:启动Spider时在配置窗口的「范围」选项中选择「仅上下文范围内的节点」,取消勾选爬取关联子域、跨域链接的相关选项。
- AJAX爬虫:启动时勾选「仅爬取范围内URL」,在高级设置中开启禁止加载范围外资源,该选项会直接拦截浏览器渲染时自动发起的外部资源请求。
- 主动扫描:启动Active Scan时在「范围」设置中选择「仅扫描上下文中的目标」,取消勾选「自动扫描新发现的未知节点」。
- 全局规则兜底
打开「工具」-「选项」-「全局排除URL」,添加正则规则^(?!http://127\.0\.0\.1:8000).*$,所有非本地8000端口的地址会被全局拦截,包括浏览器自发的校验、更新请求。
相关法律风险说明
- 你当前看到的这些外部URL访问记录,都不属于主动的未授权漏洞扫描行为,本质是浏览器加载资源、组件自检的正常请求,和普通用户访问网站触发的请求性质一致,不存在法律风险。
- 如果未做范围限制,导致ZAP对外部公共站点发起主动漏洞扫描,确实存在法律风险:绝大多数公共服务的用户协议都禁止未授权的漏洞探测行为,情节严重的可能触及计算机系统相关的法律法规条款。按上述配置锁死范围后,完全可以避免这类问题。
内容的提问来源于stack exchange,提问作者Neelkanth Kaushik
相关产品推荐
相关产品推荐

