OWASP ZAP 被动扫描脚本

OWASP ZAP Passive scan script

我写了一个脚本(js - 按照 Nashorn JS 引擎和 jsoup 进行解析)与 OWASP Zap 被动扫描一起使用(将脚本放在被动规则下)。现在我有一个问题,当 ZAP 处理一个请求时,它加载整个 js 文件而不仅仅是扫描功能,所以我不能使用变量作为标志来检测我之前设置的一些状态。而且,被动规则中的脚本不支持 window 对象,localstorage ...所以不能使用。

对这种情况有什么想法吗?

谢谢,

您可以使用全局变量在 ZAP 脚本之间传递值:https://github.com/zaproxy/zap-core-help/wiki/HelpAddonsScriptsScripts#global-variables

可以通过相同的 org.zaproxy.zap.extension.script.ScriptVars class 在同一脚本的不同调用之间共享变量。例如,在 Javascript 中,您可以按如下方式使用此 class:

org.zaproxy.zap.extension.script.ScriptVars.setScriptVar(this.context, "var.name","value") 
org.zaproxy.zap.extension.script.ScriptVars.getScriptVar(this.context, "var.name") 

请注意,这些方法只能用于提供对 ScriptContext 的访问权限的脚本语言(如 Javascript)。