戻る 勉強部屋 > Webアプリケーションの脆弱性検査

脆弱性検査手法

自動検査

自動的に検査コードの送信やレスポンスを解析する
OWASP ZAPやSQLMAP、Fiddlerなどがある

手動検査

リクエストをプロキシとして一旦保留、利用者が送信する

通信監視

リクエストとレスポンスを監視、分析して脆弱性の有無を判定

実験環境

Webサーバ

XAMPP、OWASP BWA、BadStore.net、WebGoat、moth、Hackme

Webクライアント

攻撃者

Burp、Fiddler

脆弱性

SQLインジェクション

問題:SQL文の組み立て方法が不適切
被害:アクセス権限がない人がデータベースの情報を閲覧、改ざんできてしまう

発見方法:

  1. 入力フォームにキーワードを入力し、URLパラメータにキーワードが含まれているかをチェック
  2. 入力フォームまたはURLパラメータに「'(シングルコーテーション)」を入力し、エラーが起きるかをチェック
  3. 入力フォームまたはURLパラメータに「' OR 1=1」や「' union select unhex(hex(version())), \0 - 'x'='x」を入力し、エラーが起きるかをチェック
  4. SQL文を含めたリクエストを送信し、データベースの内容やバージョン情報が実行されたら脆弱性あり

ディレクトリ・トラバーサル

問題:ファイル名指定の実装が不適切
被害:意図しないディレクトリにファイルを作成されたり、参照されてしまう

発見方法:

  1. URLに「../../」等の記号を用いてアクセスできるかをチェック

XSS(クロスサイトスクリプティング)

問題:スクリプトやタグが有効な形でHTTPレスポンスに含まれている
被害:ユーザーがスクリプトを含むリンクにアクセスしてしまい、意図しない動作や表示をされてしまう

発見方法:

  1. 入力データにタグやデータを入力してHTTPリクエストを送信し、HTTPレスポンスに入力データに使用したタグやJavascripが有効な形で含まれているかを確認する

「>'><script>alert('Test')</script>」、「>'><script>alert("Test")</script>」、「>"'><img src="javascript:alert('Test')">」、「" style="background:url(javascript:alert('Test'))" OA="」、「'+alert('Test')+'」

参考