Shikata Ga Nai

Private? There is no such things.

DVWAでOWASP ZAPの使い方をかいてみた

Hello there, ('ω')ノ

 

まずは、DVWA を起動して。

 

f:id:ThisIsOne:20200815172510p:plain

OWASP ZAPも起動して。

DVWAのページをリロードするとサイトが表示され。

右クリックでスパイダーを選択して。

 

f:id:ThisIsOne:20200815175552p:plain

 

スキャンを開始すると。

 

f:id:ThisIsOne:20200815175644p:plain


この状態だとログインページと一部の画像のみをクロールできて。

 

f:id:ThisIsOne:20200815175754p:plain

 

次に動的スキャンを選択して。

 

f:id:ThisIsOne:20200815175903p:plain


スキャンを開始してみると。

 

f:id:ThisIsOne:20200815175949p:plain

 

この状況では、ログインページのみの脆弱性の検出ができて。

 

f:id:ThisIsOne:20200815180032p:plain

 

1ページのみのスキャンとなるためアラートも少なく。

 

f:id:ThisIsOne:20200815180114p:plain


ZAPをうまく使用するには有効なユーザかセッションを作成する必要があって。

なので一度、リセットして。

 

f:id:ThisIsOne:20200815180214p:plain

 

 まずは、DVWAで管理者としてログインしなおして。

 

f:id:ThisIsOne:20200815180300p:plain

 

管理者の資格情報を使用して、適当に2つのXSSにアクセスしておいて。

 

f:id:ThisIsOne:20200815174519p:plain

  

すると、クリックしたページに対してZAPがパッシブスキャンを実行して。

 

f:id:ThisIsOne:20200815180423p:plain

 

DVWAを右クリックでコンテキストに追加した後に。

コンテキストをダブルクリックするかセッションプロパティを押すと。

 

f:id:ThisIsOne:20200815181314p:plain

 

セッションプロパティが開いて。

DVWAはフォームベースの認証なので、今回はデフォルトのままで。

ここは確認だけのためなので、あまり気にせずに一旦閉じて。

 

f:id:ThisIsOne:20200815181111p:plain


また、サイトの表示ではログインのページにパラメータが表示されているので。

 

f:id:ThisIsOne:20200815181538p:plain

 

右クリックで、さきほど確認したフォームベースの認証ログインを選択すると。

 

f:id:ThisIsOne:20200815181706p:plain

 

リクエストオプションのセッションプロパティが表示されて。

必要なフィールドが自動的に入力されているので。

適切なパラメータをプルダウンから選択して、OKを押して。

 

f:id:ThisIsOne:20200815182007p:plain

 

再度、セッションプロパティを表示させると。

Login Requestが変更され。

異なるユーザとパスワードを適用できるように%で囲まれて。

 

f:id:ThisIsOne:20200815182345p:plain

 

ユーザメニューでは、ユーザを追加できて。

 

f:id:ThisIsOne:20200815182745p:plain

 

Forced Userでは、強制的に使用するユーザが選択できて。

ここで選択したユーザが、コンテキストに対して行われたすべての要求に使用されて。

 

f:id:ThisIsOne:20200815182827p:plain

 

セッションプロパティを終了してから、強制ユーザモード有効にして。

 

f:id:ThisIsOne:20200815183335p:plain

 

再度、セッションプロパティを開いて。

ログアウトしても再度ログインして続行できるように。

ログイン状態かをアプリに教える必要があって。

レスポンスの内容からログイン状態を示すキーワードを見つけて。

他のページでも表示されることを確認したら。

右クリックで、Logged-in Indicatorを選択すると。

 

f:id:ThisIsOne:20200815184008p:plain

 

セッションプロパティにログイン状態と認識されたパターンが追加されて。 

 

f:id:ThisIsOne:20200815184048p:plain

 

これで攻撃の準備ができたので、まずはスパイダーでadminを選択して実行すると。

 

f:id:ThisIsOne:20200815184410p:plain

 

新しくページが追加されて。

 

f:id:ThisIsOne:20200815184621p:plain

 

履歴をみるといくつかうまくいってない結果が見られ。

 

f:id:ThisIsOne:20200815184900p:plain

 

調べてみるとどうもパスワード変更するページがあって。

リクエストを見ると、ZAPにパスワードが変わったようで。

 

f:id:ThisIsOne:20200815185328p:plain

 

こちらをみるとzapでログインしていることが確認できて。

 

f:id:ThisIsOne:20200815185521p:plain

 

こちらでも。

 

f:id:ThisIsOne:20200815185818p:plain

 

どうやらZAPがadminのパスワードを変更したので。

セッションプロパティで設定したパスワードが機能しなくなったようで。

なので一旦、ブラウザでデータベースをリセットすることに。

 

f:id:ThisIsOne:20200815190358p:plain

 

よって、パスワードを変更することを回避したいのでページを除外することに。

該当するページで右クリックして、処理から除外するを選択して。

 

f:id:ThisIsOne:20200815190636p:plain

 

すると、セッションプロパティに追加され。

 

f:id:ThisIsOne:20200815190752p:plain

 

そこで、右クリックで動的スキャンを実行して。

 

f:id:ThisIsOne:20200815190903p:plain

 

ユーザを選択して、スキャンを開始すると。

 

f:id:ThisIsOne:20200815190939p:plain

 

スキャンが開始されて。

 

f:id:ThisIsOne:20200815191141p:plain

 

多くの脆弱性が発見された。

 

f:id:ThisIsOne:20200815191239p:plain

 

Best regards, (^^ゞ