サイト脆弱性をチェックしよう!--第6回:SQLインジェクションの検査方法 - (page 2)

池田雅一(テクマトリックス)

2007-11-26 18:43

SQLインジェクションの検査手法

 SQLインジェクションは、特別なHTTPリクエストを送信すると、HTTPレスポンスに、「SQLインジェクションが可能です」といった文字列が、常にXSSのように含まれるわけではない。このため、XSSの検査に比べて、脆弱性の有無が分かりにくいことが多い。

 しかし、以下のような方法で、SQLインジェクションの脆弱性の有無をある程度(単純なケースならば)判断することが可能だ。

1. エラーメッセージの内容を元に確認

2. 特別な値を入力データとする複数のHTTPリクエストに対するHTTPレスポンスの違いを元に確認

 それでは、それぞれの方法で、どのように検査を実施するか見ていこう。

1. エラーメッセージの内容を元に確認

 この方法は、組み立てられたSQL文が文法エラーとなるように入力データを細工したリクエストを送信し、そのHTTPレスポンスにシステムが出力する文法エラーが含まれているかどうかで判断する。この方法で検査する場合に使用する検査データには、たとえば以下のようなものがある。

  • 「;」を用いてSQL文を強制的に終了させるケース
  • 「'」を用いて文字列定数を強制的に終了させるケース

 これらの値をパラメータ値として使用した場合、先の例のSQL文では以下のようなSQL文が作成される。

SQL文(3)

 これらは、SQL文として不適切であるため、データベースがエラーをアプリケーションに返す。サーバの設定に依存するが、アプリケーションは、データベースから受け取ったエラーをそのままHTTPレスポンスとして返すことがあり、検査ではデータベースのエラーがHTTPレスポンスに含まれていないかを確認する。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    従来型のセキュリティでは太刀打ちできない「生成AIによるサイバー攻撃」撃退法のススメ

  2. セキュリティ

    マンガでわかる脆弱性“診断”と脆弱性“管理”の違い--セキュリティ体制の強化に脆弱性管理ツールの活用

  3. セキュリティ

    クラウドセキュリティ管理導入による投資収益率(ROI)は264%--米フォレスター調査レポート

  4. セキュリティ

    Microsoft Copilot for Security--DXをまい進する三井物産が選んだ理由

  5. セキュリティ

    情報セキュリティに対する懸念を解消、「ISMS認証」取得の検討から審査当日までのTo Doリスト

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]