はじめに
今回は、OWASP ZAPのアドオンを追加して動的スキャンを行ってみます。
SQLインジェクションのテストはデフォルトでインストールされていますが、アドオンで高度なSQLインジェクションを追加してみます。
OWASP ZAPのインストール方法や、基本的な使い方は以下にまとめましたのでご覧ください。
脆弱性の危険性を試した記事を以前まとめましたので、あわせてご覧ください。
Mac版のOWASP ZAPについては以下の記事をご覧ください。
本記事ではWindows版で解説していますが、使い方はMac版でも同様です。
他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。
アドオン追加
OWASP ZAPを起動しましょう。
上部のメニューの「アドオンの管理」ボタンをクリックします。
今回は「Advanced SQLInjection Scanner」を追加します。
マーケットプレイスタブを開きます。
フィルタに「sql」と入力すると該当のテストが表示されました。
右側のチェックボックスにチェックを入れ、「選択済みをインストール」をクリックします。
ダウンロードはすぐに完了しました。
テストはインストール済みの方に追加されました。
アドオンのソースコードは以下です。
Advanced SQLInjection Add-onのソースコードは以下です。
動的スキャン
それでは動的スキャンを行ってみましょう。
追加したテストは、スキャンポリシーに追加されていました。(高度なSQLインジェクション)
今回はスキャンポリシーで、SQLインジェクションのみにしました。
スキャンしたいリクエストに動的スキャンを行います。
スキャンの進捗状況を確認してみます。以下のボタンをクリックします。
それぞれの進捗状況を確認できます。
高度なSQLインジェクションは時間がかかりました。
高度なSQLインジェクションの脆弱性を検知することができました。
SQLインジェクションについて
以前記事にした以下のサイトに試してみます。
敢えてSQLインジェクションが含まれるWebサイトに試してみました。
上記の記事のサイトでは、不正なパラメータを送信することにより、ログインを成功させる脆弱性コードを書きました。
実際には、「ログインOK!」という応答を返しているだけです。
動的スキャンを実行してみたところ、SQLインジェクションが検知できませんでした。
判断する基準があるのでしょう、取り逃すよりは、取り敢えず検知してみてから検討する方が良いと思います。
既定のアラートのしきい値が「中」になっていました。
既定のしきい値を変更するのも良いですが、各テストごとにしきい値を変更するのも良いでしょう。
「低」にした場合、検知することができました。
必ずしも、コード中のSQLインジェクションを全て検知できるわけではない点に注意しましょう。
さいごに
今回は、OWASP ZAPのアドオンを追加して実行してみました。
他にもアドオンはありますので、是非試してみてください。
他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。
コメント