
# 为什么漏洞管理服务多次扫描结果不一致？
动态扫描（DAST）的结果由多种因素决定，多次扫描结果可能存在不一致的情况，如某类漏洞的数量存在差异，在扫描结果相差不大的情况下，结合多份扫描结果的内容进行分析，关注漏洞是否存在即可。
下面将解释扫描结果不一致的原因。
#### **漏洞管理服务工作机制**
漏洞管理服务从客户端的角度，模拟黑客向测试目标发起攻击，根据网站的响应（内容、时间等信息）来判断是否存在漏洞。
- 根据登录信息登录测试目标。
- 主动爬虫爬取相关目标。
- 发送攻击报文进行测试。
- 根据响应内容判断漏洞存在。
 
#### **影响因素**
结合漏洞管理服务工作机制，我们可以得出影响扫描结果的以下几个关键因素，这些因素在多次扫描中的差异，会最终导致多次扫描结果的不一致。
- **会话维持**
  如果登录信息存在问题，漏洞管理服务将无法登录进目标系统，只能进行测试目标外围的信息探测，从而影响扫描结果。常见的可能原因有：
  - 用户名密码被更改
  
  - Cookie/Token 等信息失效，结合业务本身的Cookie/Token等会话机制判断
  
  - 业务自身的会话机制
    - 多因子认证：验证码、短信等等。
    
    - 异地登录限制。
    
    - 登录频率限制。
    
    - 异常请求等强制中断会话。
    
    - 单用户登录（不允许多个客户端同时登录）。
    
    - 登录失败次数限制。
     
   
- **扫描范围**
  漏洞管理服务主动爬虫会通过自动填充form表单等策略来尝试发现更多页面。
  业务对随机值响应不一致导致了扫描范围不一致。
  

- **响应信息**
  响应信息是漏洞管理服务判断漏洞是否存在的决定性因素。网络状况、动态内容、WAF机制、测试目标本身稳定性都会影响漏洞的判定，常见的可能原因有：
  - 网络状况
    - 网络链接本身：网络延迟、网络波动。
    
    - 业务策略：访问过快、攻击报文、异常报文等直接将客户端加入黑名单。
    
    - 业务稳定性：在大量请求下的稳定性（响应时间）。
     
  
  - 业务逻辑
    - 响应内容不一致
      - 攻击报文中存在大量异常、随机值，业务对不同内容响应不同。
      
      - 对不同客户端（ip/user-agent/...）响应不同。
       
    
    - 响应时间不一致 攻击报文中存在大量异常、随机值，业务处理方式不一致，耗时不同。
      
     
  
  - WAF机制
    - 限制访问频率
    
    - 限制攻击来源访问
     
    
 
