以编程方式在 Zed 攻击代理中设置活动会话

Programmatically set active session in Zed Attack Proxy

我们正在与 zaproxy api 合作,我们正在尝试通过 setActiveSession() API-调用将会话设置为 "active" ,它被记录在 here 中并且有两个参数,sitesession。我们 运行 遇到的问题是我们不断收到错误:

{
  "code": "illegal_parameter",
  "message": "Provided parameter has illegal or unrecognized value",
  "detail": "session"
}

假设我们在 sessions() API 通话中有以下会话,

{
  "sessions": [
    {
      "session": [
        "Session 1",
        {
          "JSESSIONID": {
            "comment": "",
            "domain": "localhost",
            "domainAttributeSpecified": false,
            "expired": false,
            "expiryDate": null,
            "name": "JSESSIONID",
            "path": "/",
            "pathAttributeSpecified": false,
            "persistent": false,
            "secure": false,
            "value": "941A60311B3C63C69C5887F531E7090A",
            "version": 0
          }
        },
        "16"
      ]
    }
  ]
}

我们需要在 session 字段中发送什么值才能使此 API 调用成功?我们已经尝试了 "complex" JSESSIONID 对象中的 value 字段,以及名称 "Session 1" 和“16”(假设它是某些对象的 ID排序),在 session 数组中。他们都return同样的错误。

[编辑] 当我们进行这些调用时,我刚刚看到 zap 将以下内容记录到终端中:

1055328 [ZAP-ProxyThread-106] WARN org.zaproxy.zap.extension.api.API  - ApiException while handling API request:
Provided parameter has illegal or unrecognized value (illegal_parameter) : session
    at org.zaproxy.zap.extension.httpsessions.HttpSessionsAPI.handleApiAction(Unknown Source)
    at org.zaproxy.zap.extension.api.API.handleApiRequest(Unknown Source)
    at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(Unknown Source)
    at org.parosproxy.paros.core.proxy.ProxyThread.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:748)

在 API- 浏览器中反复试验后,我们发现正确的值确实是 "Session 1",但我们发送的名称用引号括起来,即 "Session 1",但正确的发送方式是没有它们,即 Session 1.