owasp zap tutorial comprehensive review owasp zap tool
このチュートリアルでは、OWASP ZAPとは何か、どのように機能するか、ZAPプロキシをインストールおよびセットアップする方法について説明します。 ZAP認証とユーザー管理のデモも含まれています。
ペンテストにZAPを使用する理由
安全なWebアプリケーションを開発するには、それらがどのように攻撃されるかを知っている必要があります。ここに、Webアプリのセキュリティまたは侵入テストの要件があります。
セキュリティの目的で、企業は有料ツールを使用していますが、OWASP ZAPは、ペネトレーションテストをテスターにとって簡単にする優れたオープンソースの代替手段です。
学習内容:
OWASP ZAPとは何ですか?
ペネトレーションテストは、攻撃者が行う前に脆弱性を見つけるのに役立ちます。 OSWAP ZAPはオープンソースの無料ツールであり、侵入テストを実行するために使用されます。 Zapの主な目標は、侵入テストを簡単に実行してWebアプリケーションの脆弱性を見つけることです。
ZAPの利点:
- Zapはクロスプラットフォームを提供します。つまり、すべてのOS(Linux、Mac、Windows)で機能します。
- Zapは再利用可能です
- レポートを生成できます
- 初心者に最適
- 無料ツール
ZAPはどのように機能しますか?
ZAPはプロキシサーバーを作成し、Webサイトのトラフィックをサーバーを通過させます。 ZAPで自動スキャナーを使用すると、Webサイトの脆弱性を傍受するのに役立ちます。
理解を深めるには、次のフローチャートを参照してください。
ペンをどのようにテストしますか
ZAPの用語
ZAPセットアップを構成する前に、いくつかのZAP用語を理解しましょう。
#1)セッション :セッションとは、攻撃の領域を特定するためにWebサイトをナビゲートすることを意味します。この目的のために、Mozilla Firefoxのようなブラウザは、プロキシ設定を変更することで使用できます。または、zapセッションを.sessionとして保存し、再利用することもできます。
#2)コンテキスト: これは、WebアプリケーションまたはURLのセットをまとめたものを意味します。 ZAPで作成されたコンテキストは、指定されたコンテキストを攻撃し、残りを無視して、データが多すぎるのを防ぎます。
#3)ZAP攻撃の種類: URLをヒットしてスキャンすることにより、さまざまなZAP攻撃タイプを使用して脆弱性レポートを生成できます。
アクティブスキャン: Zapを使用してアクティブスキャンを実行するには、さまざまな方法があります。最初のオプションは クイックスタート、 これは、ZAPツールのウェルカムページにあります。以下のスクリーンショットを参照してください。
クイックスタート1
上のスクリーンショットは、ZAPを開始する最も簡単な方法を示しています。 (クイックスタート)タブにURLを入力し、(攻撃)ボタンを押すと、進行が始まります。
クイックスタートは、指定されたURLでスパイダーを実行してから、アクティブなスキャナーを実行します。スパイダーは、指定されたURLから始まるすべてのページをクロールします。より正確に言うと、クイックスタートページは「オートフォーカス」のようなものです。
クイックスタート2
ここで、ターゲットURLを設定すると、攻撃が開始されます。進行状況は、コンテンツを検出するためにURLをスパイダリングしていることで確認できます。時間がかかりすぎる場合は、手動で攻撃を停止できます。
の別のオプション アクティブスキャン Zapが自動的にURLを検出するため、ZAPプロキシブラウザでURLにアクセスできるということです。 URLを右クリックすると->アクティブスキャンが起動します。クロールが完了すると、アクティブスキャンが開始されます。
攻撃の進行状況は(アクティブスキャン)タブに表示されます。 (スパイダー)タブには、攻撃シナリオを含むリストURLが表示されます。アクティブスキャンが完了すると、結果が(アラート)タブに表示されます。
以下のスクリーンショットを確認してください アクティブスキャン1 そして アクティブスキャン2 明確な理解のために。
アクティブスキャン1
アクティブスキャン2
#4)スパイダー: SpiderはWebサイトのURLを識別し、ハイパーリンクを確認してリストに追加します。
#5)Ajaxスパイダー: アプリケーションがJavaScriptを多用している場合は、AJAXスパイダーを使用してアプリを探索してください。説明します Ajaxスパイダー 詳細は次のチュートリアルで説明します。
#6)アラート :Webサイトの脆弱性は、高、中、低のアラートとしてフラグが付けられます。
ZAPのインストール
これで、ZAPのインストール設定について理解できます。まず、ダウンロードします Zapインストール 。 Windows 10を使用しているので、それに応じてWindows64ビットインストーラーをダウンロードしました。
Zapインストールの前提条件: Java7が必要です。システムにJavaがインストールされていない場合は、最初にJavaを入手してください。次に、ZAPを起動できます。
ZAPブラウザを設定する
まず、アクティブなFirefoxセッションをすべて閉じます。
Zapツールを起動>> (ツール)メニューに移動>>オプションを選択>> (ローカルプロキシ)を選択>>アドレスがlocalhost(127.0.0.1)、ポートが8080であることがわかります。すでに使用している場合は、他のポートに変更できます。 8099に変更するとします。以下のスクリーンショットを確認してください。
Zap1のローカルプロキシ
次に、Mozilla Firefox >>オプションの選択>>詳細タブ>>ネットワーク>>接続設定>>オプションの手動プロキシ設定を選択します。 Zapツールと同じポートを使用します。 ZAPで手動で8099に変更し、Firefoxブラウザで同じものを使用しました。プロキシブラウザとして設定されたFirefox設定のスクリーンショットを以下で確認してください。
Firefoxプロキシのセットアップ1
ブラウザを使用してアプリケーションを接続してみてください。ここで、私は接続しようとしました フェイスブック 接続が安全ではないと表示されます。したがって、例外を追加してから、Facebookページに移動するためのセキュリティ例外を確認する必要があります。以下のスクリーンショットを参照してください。
ウェブページにアクセス-プロキシブラウザ1
ウェブページにアクセス-プロキシブラウザ2
ウェブページにアクセス-プロキシブラウザ3
同時に、Zapの(サイト)タブで、Facebookページ用に作成された新しいセッションを確認します。アプリケーションが正常に接続されると、ZAPの(履歴)タブにさらに多くの行が表示されます。
Zapは通常、次のような右クリックメニューからアクセスできる追加機能を提供します。
>> HTML >>アクティブスキャンを右クリックすると、zapがアクティブスキャンを実行して結果を表示します。
ブラウザを使用してアプリケーションに接続できない場合は、プロキシ設定をもう一度確認してください。ブラウザとZAPプロキシの両方の設定を確認する必要があります。
ZAPでのレポートの生成
アクティブスキャンが完了すると、レポートを生成できます。そのためには、OWASP ZAP >>レポート>> HTMLレポートの生成>>提供されたファイルパス>>エクスポートされたスキャンレポートをクリックします。考えられるすべての脅威を特定して修正するために、レポートを調べる必要があります。
ZAP認証、セッション、およびユーザー管理
認証、セッション、およびユーザー管理を処理する別のZap機能に移りましょう。これに関して頭に浮かんだ質問があればコメントとして教えてください。
基本概念
- 環境 :WebアプリケーションまたはURLのセットをまとめて表します。特定のコンテキストに対して、認証およびセッション管理プロセスをカスタマイズおよび構成するための新しいタブが追加されます。オプションは、セッションプロパティダイアログで使用できます。つまり、セッションプロパティダイアログ->コンテキスト->デフォルトのオプションを使用するか、新しいコンテキスト名を追加できます。
- セッション管理方法: セッション管理方法には2種類あります。ほとんどの場合、コンテキストに関連付けられたCookieベースのセッション管理が使用されます。
- 認証方法: ZAPで使用されるAuthメソッドには主に3つのタイプがあります。
- フォームベースの認証方法
- 手動認証
- HTTP認証
- ユーザー管理: 認証スキームが構成されると、コンテキストごとにユーザーのセットを定義できます。これらのユーザーはさまざまなアクションに使用されます( 例えば、 ユーザーYとしてスパイダーURL /コンテキスト、ユーザーXとしてすべてのリクエストを送信します)。間もなく、ユーザーを利用するアクションがさらに提供される予定です。
「Forced-User」拡張機能は、再認証を実行していた古い認証拡張機能を置き換えるために実装されています。 「強制ユーザー」モードがツールバー(古い認証拡張機能と同じアイコン)から利用できるようになりました。
特定のコンテキストでユーザーを「強制ユーザー」として設定した後、または有効にすると、ZAPを介して送信されるすべてのリクエストは、このユーザーに送信されるように自動的に変更されます。このモードでは、認証が不足している場合、「ログアウト」が検出された場合に、(特にフォームベース認証と組み合わせて)再認証も自動的に実行されます。
デモを見てみましょう:
ステップ1:
まず、ZAPを起動し、プロキシブラウザでURLにアクセスします。ここでは、サンプルURLを次のように取得しました。 https://tmf-uat.iptquote.com/login.php 。 6ページと7ページのように、(詳細設定)-> (例外の追加)-> (セキュリティ例外の確認)をクリックします。次に、ランディングページが表示されます。同時に、ZAPはサイトの下のWebページを新しいセッションとして自動的にロードします。下の画像を参照してください。
ステップ2:
コンテキストに含めます。これは、デフォルトのコンテキストに含めるか、新しいコンテキストとして追加することで実行できます。下の画像を参照してください。
ステップ3:
次は認証方法です。そのセッションプロパティダイアログ自体で認証を確認できます。ここでは、フォームベースの認証方法を使用しています。
authMethodParamsのようになります。 「」 ログインUrl = https://tmf-uat.iptquote.com/login.php&loginRequestData=username=superadmin&password=primo868&proceed=login”
この例では、認証方法をフォームベースとして設定する必要があります。このために、ターゲットURLを選択し、ログイン要求の投稿データフィールドが事前に入力されます。その後、パラメータをユーザー名とパスワードに変更します-> (OK)をクリックします 。
ステップ4:
次に、認証されたときにZAPに通知するインジケーターを設定します。
ログインおよびログアウトのインジケーター:
- 1つだけ必要です
- 応答メッセージで一致する正規表現パターンを設定できます。ログインまたはログアウトのインジケーターを設定する必要があります。
- 応答が認証されるかどうかを識別します。
- ログインインジケーターの例: Qhttp:// example / logout EまたはWelcomeUser。*
- ログアウトインジケーターの例: login.jspまたはそのようなもの。
ここで、デモアプリケーションでは、プロキシブラウザでURLにアクセスしました。有効な資格情報、superadminとしてのユーザー名、primo868としてのパスワードを使用してアプリケーションにログインしました。内部ページをナビゲートし、ログアウトをクリックします
ステップ3のスクリーンショットでわかるように、Zapはログイン要求データをTMFアプリケーションログイン(デモアプリケーションログイン)に使用されるデータとして取得します。
ZAPの応答からログインした正規表現パターンに応答としてフラグを立てる->ログアウトした応答->インジケーターにログインしたものとしてフラグを立てます。 参照する 以下のスクリーンショット
ステップ5:
インジケーターを保存して、セッションプロパティダイアログがログインインジケーターとともに追加されるかどうかを確認できます。以下のスクリーンショットを参照してください。
ステップ6:
有効なユーザーと無効なユーザーのユーザーを追加する必要があります。両方にスパイダーアタックを適用し、結果を分析します。
有効なユーザー:
無効なユーザー:
ステップ7:
デフォルトでは、セッション管理をCookieベースの方法として設定します。
ステップ8:
スパイダーURL攻撃は、無効および有効なユーザーに適用され、結果を確認してレポートを生成します。
無効なユーザースパイダー攻撃ビュー1:
データモデリング面接の質問と回答
ここでは、スパイダーURL攻撃が無効なユーザーに適用されます。 ZAPインターフェースでは、Get:login.php(error _message)が表示されます。これは、認証が失敗したことを意味します。また、内部TMFページを介してURLを渡しません。
ステップ9:
有効なユーザーにスパイダーURL攻撃を適用するには、サイトリスト->攻撃->スパイダーURL->既存の有効なユーザー->ここでデフォルトで有効になっています->スキャンを開始します。
結果の分析:有効な認証済みユーザーであるため、すべての内部ページをナビゲートし、認証ステータスを成功として表示します。以下のスクリーンショットを参照してください。
有効なユーザー
ZAPHtmlレポートサンプル
アクティブスキャンが完了すると、同じもののHTMLレポートを生成できます。これを行うには、(レポート)-> (HTMLレポートの生成)を選択します。 HTMLレポートのサンプルコンテンツを添付しました。ここでは、高、中、低のアラートレポートが生成されます。
アラート
結論
このチュートリアルでは、ZAPとは何か、ZAPの仕組み、インストール、およびZAPプロキシのセットアップについて説明しました。さまざまなタイプのアクティブスキャンプロセス、ZAP認証のデモ、セッションとユーザーの管理、および基本的な用語。次のチュートリアルでは、Ajaxスパイダー攻撃、ファザーの使用、強制閲覧サイトについて説明します。
また、Zed攻撃プロキシを使用したことがあり、共有するための興味深いヒントがある場合は、以下のコメントで共有してください。
参照: