OWASP ZAP
前提
- 別名設定済み。
- 画面から実行すること。
初期設定
プロキシ設定(OWASP ZAP)
- ツール→オプション
- ローカル・プロキシ
- Address, ポートに任意の値を設定。
- OKボタン押下
プロキシ設定(OS)
Chromebook
- ネットワーク→接続しているネットワークを選択
- プロキシ
- 手動プロキシ設定
- HTTPプロキシと保護されたHTTPプロキシにOWASP ZAPで設定した値を設定。
Windows10
- スタート→設定→「プロキシ」で検索→プロキシの設定をクリック
- 手動プロキシ セットアップで下記設定。
- プロキシ サーバーを使う:オン
- アドレス:localhost
- テスト対象サーバがlocalhostの場合、接続先がlocalhostの場合もプロキシを使用するように設定する。
- ポート:OWASPZAPで設定した値
- 保存ボタン押下
Ubuntu
- 設定 -> ネットワーク -> ネットワークプロキシ
- HTTPプロキシ、HTTPSプロキシを設定する。
- OWASP ZAPで設定した値
ツール実行 - 攻撃
- (重要) プロテクトモードに変更する。
- 左上のプルダウンメニューからプロテクトモードを選択する。
- ブラウザでテスト対象のページにアクセスする
- OWASP ZAPにテスト対象のURLとして取り込まれる。
- Windows版だと取り込まれるが、Java版だと取り込まれなかった?
- テスト対象ページすべてにアクセスする。
- アクセスしたページがテスト対象となる。アクセスしていないページは、IP,Portが同じでもテスト対象に追加されない。
- localhostではなく、プライベートIPでアクセスする。
- OWASP ZAPにテスト対象のURLとして取り込まれる。
- テスト対象ページをコンテキストに含める
- 対象URLを右クリック→コンテキストに含める→New Context
- OKボタン押下
- テスト対象ページに攻撃する
- 対象URLを右クリック→攻撃→動的スキャン
実行結果のエクスポート
- レポート→HTML レポート生成をクリック。
コマンドライン実行例
OWASP ZAPの画面で設定した項目の影響を受ける。(プロテクトモードに設定していればプロテクトモードで実行されるが、テスト対象外のURLに接続しようとすると怒られる。)
mkdir owaspzap_report
owaspzap -daemon -quickurl http://192.168.1.34:8080/ -quickout ./owaspzap_report/zap_out.xml
参考
- Qiita:OWASP ZAPの設定と使い方
- Qiita:OWASP ZAP CLI 入門(インストール、起動方法、基本的なオプション)
- ZAP:Command Line
- コマンドラインの一覧
- 「」:CentOS7: OWASP ZAP: コマンドライン
- コマンドラインで実行する方法
- Web Application Security Memo:OWASP ZAP スキャンポリシーの検査項目一覧(Release版)
- OWASP ZAPのチェック項目一覧。
- OWASP ZAP:Documentation
- 公式ドキュメント1
- 実行結果
- HTML5_CSS_JavaScript_Programingに対して実行した結果
- sample.json
- トップページのみ
- sample2.json
- トップページ + Sample1.html ~ Sample6.html
- sample.json
- HTML5_CSS_JavaScript_Programingに対して実行した結果
外部送信の脆弱性一覧
ChatGPT 3.5の回答。
OWASP ZAPはさまざまなセキュリティアラートを検出できますが、具体的なアラートのリストはOWASP ZAPのバージョンや設定によって異なります。以下は一般的な外部送信に関連するアラートの一例です。これは一般的な項目であり、特定のアプリケーションによっては異なる可能性があります。
- 外部ドメインへのデータ送信 (External Link):
- アプリケーションが外部ドメインにデータを送信する際に、その操作が検出されます。
- サードパーティのAPI呼び出し (Third Party Interaction):
- アプリケーションがサードパーティのAPIを呼び出している場合に検出されます。
- 不正なデータ送信 (Data Exfiltration):
- アプリケーションがユーザーの個人情報や機密データを外部に送信しようとしている場合に検出されます。
- クロスサイトリクエストフォージェリ (CSRF):
- CSRF攻撃の可能性がある場合、外部ドメインに対するリクエストが検出されます。
- 不正なフォーム操作 (Illegal Form Key Submission):
- フォームキーが不正に送信される場合に検出されます。
- 外部スクリプトの使用 (External JavaScript):
- アプリケーションが外部からJavaScriptを読み込んでいる場合に検出されます。
- クロスサイトスクリプティング (XSS):
- XSS脆弱性が検出されると、外部にデータが送信される可能性があるため、これも注意が必要です。
- 不正なリダイレクト (Open Redirect):
- 不正なリダイレクトが検出されると、外部のURLにユーザーが誘導される可能性があります。
これらのアラートはあくまで一般的なものであり、実際のアプリケーションによっては異なる可能性があります。OWASP ZAPのドキュメントやアプリケーションのコンテキストに基づいて設定を調整し、特定のアラートに焦点を当てることが重要です。