【问题标题】:ZAP scripts behave inconsistnentlyZAP 脚本的行为不一致
【发布时间】: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


    【解决方案1】:

    关于第一个问题,这完全取决于脚本的使用方式。 ZAP 会话是所有请求和响应的记录。对于某些旧响应,您使用了错误的标题。事情发生了,你不能收回。如果您重用这些请求,那么 ZAP 将发送错误的标头,除非您将其删除。如果您创建的新请求不是基于历史请求,则不应存在标头。

    关于第二个问题,身份验证很困难,并且可能会因为看起来很小的差异而失败 :( 一个不错的选择是通过 ZAP 代理您的 python 脚本。希望它仍然可以工作,然后您可以将工作请求与失败者。

    【讨论】:

    • 感谢您的及时回复!注册。第一个问题 - 即使我导入了 Open API 定义,在导入过程中添加了错误的标头(可能在导入过程中执行了发件人脚本),你也发现了。注册。第二个 - 是由在执行身份验证脚本期间执行的 http_sender 脚本引起的,这看起来有点违反直觉(我已经准备好身份验证脚本中需要的所有内容,并且身份验证请求没有记录/导入),但也许这是一个习惯问题.
    • Bennets:是否可以通过简单的方式为身份验证脚本禁用 http_sender?显式检查自定义参数,根据这些参数在发件人脚本中执行操作看起来不正确
    • 是的,看看 http_sender 脚本模板 :) github.com/zaproxy/community-scripts/tree/master/httpsender 其中一个参数是发起者,根据标题,值 5 用于 AUTHENTICATION_INITIATOR
    猜你喜欢
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 2022-10-23
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多