记录的 api 次通话的 ZAP 身份验证

ZAP Authentication for recorded api calls

我通过 Zap 代理我的 UI 测试来自动执行安全扫描。对于每个安全扫描 运行,都会创建新的 zap session 并代理请求。

在我们的应用程序中,来自登录 api 响应的访问令牌设置在 authentication header 中用于身份验证目的。当我通过 zap 代理我的测试时,headers 也会与请求负载、url 等一起记录并存储在 ZAP 中

如果

  1. zap 随请求记录的令牌在主动扫描期间仍然有效(未过期或未失效)
  2. headers 被排除在 ascan 攻击向量之外(这是默认设置)

我假设我可以在 apis(也需要身份验证)上进行主动扫描,而无需在上下文中设置身份验证、用户、强制用户、session 管理等。

我不确定如何验证这一点!

任何人都可以在下面提供帮助

  1. 我的上述假设“header 记录足以让 ZAP 扫描”在我的场景中是否正确? (只有payload、params等会被篡改)
  2. 在 Context 中设置身份验证、用户、强制用户、session 管理等有什么好处?

提前谢谢你。

身份验证很痛苦。彻底的痛苦。应用程序的身份验证方式有很多种,所有应用程序都有自己的怪癖。 如果令牌仍然有效,那么是的,理论上应该没问题。但是您如何验证这一点将完全取决于您的应用程序。如果令牌无效,它有什么用?会不会return403?您可以使用 ZAP 统计信息来计算请求是否已通过身份验证,如果 ZAP 目前没有记录您需要的统计信息,那么您可以通过脚本添加它们。

设置身份验证等的优点是,如果设置正确,ZAP 应该检测令牌是否无效(在攻击应用程序时经常发生这种情况),然后可以重新进行身份验证。

处理身份验证很困难(不仅在 ZAP 中,而且在所有安全工具中)。如需更多帮助,您最好咨询 ZAP 用户组:https://groups.google.com/group/zaproxy-users

也可以看看 ZAP in Ten 视频系列 - 特别是 ADDO Workshop 视频,我在其中更详细地介绍了身份验证:https://www.alldaydevops.com/zap-in-ten