判断采集是否遗漏,不能只看“扫到了多少条”,而要把扫描目标清单与实际扫描记录逐项比对:先确定应覆盖的URL、参数和组件范围,再检查扫描日志中是否有对应记录,最后对未出现或状态异常的目标做人工复核。遗漏通常表现为三类:目标从未进入队列、进入队列但被跳过、执行了却未保存结果。
没有基准清单,就无法判断遗漏。准备阶段的核心是把“应该检测什么”写成可逐条核对的列表,而不是凭感觉估计。
这一步的检查项是:清单中的条目是否都能被独立定位。如果某个URL依赖登录后的动态链接才能发现,就要在清单中明确写出获取方式,否则扫描器很可能根本看不到它。
扫描开始后,不要只盯着“发现漏洞数”。真正能说明遗漏的是扫描器对每个目标的处理记录。多数扫描工具会输出请求日志、跳过原因和错误信息,这些比最终报告更有诊断价值。
具体做法是:把准备阶段的清单与扫描日志做左连接比对。对清单中每个目标,检查日志里是否存在对应请求记录。比对结果可分为四种:
这里最关键的一步是区分“未请求”和“请求失败”。未请求是采集范围问题,请求失败是执行环境问题,两者的修复方向完全不同。如果日志中没有记录跳过原因,可以先用单个目标做一次最小化扫描,观察它是否出现在请求日志中。
发现疑似遗漏后,不要直接修改扫描配置,而要先确认遗漏发生在哪一层。可以用一个已知可访问的对照目标做验证:把它加入清单并重新扫描,观察它是否被请求、是否被跳过、结果是否被保存。
假设某个带参数的页面未被扫描到,可以手动构造该参数的请求,确认页面本身可访问。如果手动请求成功但扫描器未请求,问题在采集入口或链接发现规则;如果手动请求也失败,问题在目标本身的可达性或权限配置。这个对照方法不依赖具体工具,适用于任何扫描流程。
验证阶段的检查项包括:对照目标是否出现在日志中、跳过原因是否可读、结果保存路径是否可查。三项都正常,才能排除该目标的采集遗漏。
采集遗漏不是一次性的问题。站点改版、新增参数、权限调整都会让原有清单失效。维护阶段的目标是让比对可重复执行。
适用条件是:清单本身准确、日志可导出、扫描范围没有被人为缩小。如果清单已经过时,比对结果只会产生误报,此时应先修正清单。判断结果是:未请求目标数为零,说明采集覆盖完整;若不为零,则按目标逐条排查入口、权限和范围设置。
下一步可以选取清单中优先级最高的十个目标,导出本次扫描日志,逐条比对是否存在请求记录,先确认遗漏发生在采集层还是执行层。