コンテキストとして、私は最近WebGoat appsecトレーニングプログラムに取り組み始めました。そして、レッスンを完了するために必要なプログラムにデータを渡す壁にぶつかりました。
最初のレッスンセットの1つは、「 "Access Control Flaws"」と題されています。
最初のレッスンの説明は次のとおりです。
「guest」ユーザーは、lessonPlans/enディレクトリ内のすべてのファイルにアクセスできます。アクセス制御メカニズムを解除して、リストされたディレクトリにないリソースにアクセスしてみてください。表示するファイルを選択した後、WebGoatはファイルへのアクセスが許可されたかどうかを報告します。試して取得する興味深いファイルは、WEB-INF/spring-security.xmlのようなファイルです。ファイルパスは、WebGoatの起動方法によって異なります。
現在のディレクトリ:/.extract/webapps/WebGoat/plugin_extracted/plugin/SqlNumericInjection/lessonPlans/en
表示するファイルを選択してください:(ファイルのリストは下にあります)
リストからファイルを選択すると、リストにあるというエラーが発生します。最初は手動でURLを入力してみましたが、どういうわけかリクエストを変更する必要があることに気付きました。私は洞窟探検して解決策を見ました、それは次のように述べています:
このレッスンは、WebScarabでファイル名を傍受し、現在のディレクトリの下のフォルダーにあるファイルである../main.jspに置き換えることで解決できます。
OK、それで私の本能は正しかった-私の意図を実行に移すことになる。
グーグルは、WebScarab == OWASP Zed Attack Proxyの古い名前であることを発見しました。
さらにグーグルは、ZEDにデータを渡すために Firefoxでプロキシをセットアップする が必要であることを発見しました。
それで私はFirefoxに入り、プロキシをセットアップしました。 127.0.0.1とlocalhostが[プロキシなし]フィールドから削除されていることに注意してください。
ただし、(localhost:8080/WebGoatでローカルにホストされている)WebGoatに戻ると、何も傍受されません。外部Webサイトへのトラフィックはisに傍受されるため、何らかの理由でZAPがWebGoatトラフィックを受信していないことが問題であると思います。
申し訳ありませんが、これは少し単純な質問ですが、多くのことを調べた結果、解決策を見つけることができなかったようです。
TL; DR:FirefoxでOWASP GOATレッスンを表示するときに、ZEDがlocalhostトラフィックを確実に傍受する方法を教えてください。 (外部ホストのトラフィックではなく、外部Webサイトへのトラフィックが遮断されます)
プロキシのホストとポートを設定し、「プロキシなし」フィールドをクリアするだけで十分です。関連するWebGoatページ(Ctrl-Shift-R)を更新してみましたか?
Linux、Windows、MacでZAPを使用して常にローカルアプリケーションにプロキシしますが、問題はありません。
Btw ZAPはWebScarabの新しい名前ではありません。その完全に異なる製品です;)しかし、ZAPが最も確実にある間、WebScarabはもはや保守されません:)
localhost:8080/WebGoatとZAPは同じポート(8080)で動作しています。 ZAPまたはWebGoatのポート番号を変更します。
私はWebGoatをポート80で動作させ、デフォルトであるポート8080でZAPを動作させています。