【发布时间】:2019-11-09 04:03:02
【问题描述】:
我正在尝试为 Open API 扫描项目设置身份验证和 http 发送者脚本。
在某个时间点,我达到了 oauth2 的身份验证脚本正常工作(生成从远程端点获得的有效令牌)并且 http_sender 为请求附加授权标头的状态。后来发现我输错了所需的标题,所以我更改了它的名称,保存了脚本并重新运行脚本(通过扫描)。现在结果是,两个标头都附加到传出的 http 请求中:输入错误的版本和正确的版本。重新启动 ZAP 并重新加载会话后行为没有改变,但是当我创建一个新会话时,错误输入的标题消失了,我找不到在哪里可以清理它,并且当需要在脚本。
我遇到的第二个问题是身份验证脚本在没有任何修改的情况下就停止了工作。我偶尔在环境之间切换,但代码保持不变。我什至将硬编码值从上下文移动到脚本,但它仍然不起作用。我已经在 python 中设置了一个并行脚本来获取令牌并且它可以工作(所有参数都相同),但是在 ZAP 中我遇到了身份验证失败(重新创建会话没有帮助)。我不拥有 oauth 端点,因此我无法直接查看它,但我怀疑这两个问题有一些共同点。看起来有些数据存在于阴影中并影响脚本的运行方式。
第一个版本的发送脚本:
function sendingRequest(msg, initiator, helper) {
var loginToken = org.zaproxy.zap.extension.script.ScriptVars.getGlobalVar("logintoken");
msg.getRequestHeader().setHeader("Autentication", "Bearer " + loginToken);
}
第二版发件人脚本:
function sendingRequest(msg, initiator, helper) {
var loginToken = org.zaproxy.zap.extension.script.ScriptVars.getGlobalVar("logintoken");
msg.getRequestHeader().setHeader("Authorization", "Bearer " + loginToken);
}```
Authentication function is just tuned version of the zap template to send oauth2 parameters in the body of the POST request and actually worked for some time. It would really help to have some troubleshooting capabilities during scripting.
【问题讨论】:
标签: javascript scripting zap