1

ウェブサイトでザップ プロキシ スキャンを自動化しようとしていました。以下は私の流れです

  1. Zap プロキシを開始する
  2. 新しいセッションを作成 ( /JSON/core/action/newSession/?apikey=12345&name=NewSession&overwrite=true)
  3. 新しいコンテキストを作成 ( /JSON/context/action/newContext/?apikey=12345&contextName=NewContext)
  4. 含める正規表現 URL パターンと除外する正規表現 URL パターンをコンテキストに追加します ( /JSON/context/action/setContextRegexs/?apikey=12345&contextName=NewContext&incRegexs=[https://myowsapjuiceshop.herokuapp.com/*]&excRegexs=[^(?:(?!http.*://myowsapjuiceshop.herokuapp.com).*).$])
  5. テクノロジーをコンテキストに追加 ( /JSON/context/action/includeContextTechnologies/?apikey=12345&contextName=NewContext&technologyNames=Db.MySQL%2CLanguage.Java%2COS.Linux%2CWS.Tomcat)
  6. プロキシ セットで UI テストを実行する
  7. Run active scan ( /JSON/ascan/action/scan/?apikey=12345&url=&recurse=&inScopeOnly=&scanPolicyName=&method=&postData=&contextId=2) // 2 が正しい contextID
  8. アクティブ スキャンが完了するのを待ちます ( /JSON/ascan/view/status/?apikey=12345&scanId=5) // 5 は、ステップ 7 で取得する必要があるスキャン ID です (アクティブ スキャン応答を実行します)
  9. アラート json を取得 ( /JSON/alert/view/alerts/?apikey=12345&baseurl=&start=&count=&riskId=)

ステップ7まではすべて問題なく、ステップ7で立ち往生しています。ドキュメントに基づいて、「指定されたURLおよび/またはコンテキストに対してアクティブなスキャナーを実行します....」。ContextId が言及されている場合、コンテキストに対してアクティブスキャンを実行でき、URL はオプションであることを理解していました。

しかし、API をヒットして、正しい apikey と contextId でアクティブ スキャンを実行すると、 /JSON/ascan/action/scan/?apikey=12345&url=&recurse=&inScopeOnly=&scanPolicyName=&method=&postData=&contextId=2

レスポンスは{"code":"missing_parameter","message":"Missing Parameter"}

ザップログでエラーを下回っています

1581054 [ZAP-ProxyThread-65] WARN org.zaproxy.zap.extension.api.API  - Bad request to API endpoint [/JSON/ascan/action/scan/] from [127.0.0.1]:
Missing Parameter (missing_parameter) : url
    at org.zaproxy.zap.extension.ascan.ActiveScanAPI.scanURL(ActiveScanAPI.java:874)
    at org.zaproxy.zap.extension.ascan.ActiveScanAPI.handleApiAction(ActiveScanAPI.java:369)
    at org.zaproxy.zap.extension.api.API.handleApiRequest(API.java:506)
    at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(ProxyThread.java:499)
    at org.parosproxy.paros.core.proxy.ProxyThread.run(ProxyThread.java:335)
    at java.lang.Thread.run(Thread.java:748)

コンテキストに設定した正規表現を含めたり除外したりする、記録されたすべての URL でアクティブな ascan を実行したいと考えています。どんな助けでも大歓迎です。

4

1 に答える 1

2

コンテキストで URL を定義しましたか? ある場合、これらの URL のいずれかがサイト ツリーに含まれていますか?

于 2020-04-21T13:45:45.730 に答える