Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2014年3月9日

オープンソースの SQL インジェクション脆弱性診断ツールの sqlmap を Kali Linux で使ってみる

はじめに

sqlmap とは、オープンソースで開発されている SQL インジェクションの脆弱性診断ツールです。

対応しているデータベースは、以下のものになります。通常、使用するデータベースはサポートしていると思っていてよいでしょうね。

  • MySQL
  • Oracle
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access
  • IBM DB2
  • SQLite
  • Firebird
  • Sybase
  • SAP MaxDB

検知できる SQL インジェクションは以下の6種類です。

  • boolean-based blind
  • time-based blind
  • error-based
  • UNION query
  • stacked queries
  • out-of-band

他にも機能はありますが、詳しくは公式サイトをご参照ください。

今回は、脆弱性診断用の Linux ディストリビューションである Kali Linux で、この sqlmap を使用してみます。Kali Linux については、以下の記事を参照してください。

GET パラメータの脆弱性診断

GET パラメーターの脆弱性診断として、WordPress を診断してみます。脆弱性がない状態の WordPress なのですが、使用方法を参考にしてください。

実行するコマンドは以下のようになります。

-u オプションで URL を指定します。--dbms オプションでデータベースの種類を指定することもできます。診断時間を短くするために、データベースの種類が分かる場合は指定しておきましょう。

また、GET パラメーターとして p が付与されていることに注目してください。

sqlmap は この p パラメーターを使って、SQL インジェクションの診断を行います。

このコマンドを実行すると以下のように URL がリダイレクトされているが追跡するか聞いてきます。WordPress の URL をリライトしているためですが、ここでは n を入力して診断を継続します。

すると以下のように、脆弱性なしという結果が表示されます。もともと脆弱性がないことが分かっているので、ここまでで診断を終了します。

POST パラメーターの脆弱性診断

今度は、PHP + MySQL のログイン処理で、SQL インジェクションの脆弱性のあるプログラムを診断します。

PHP のプログラムは以下のようになります。SQL 文を文字列で連結するという、典型的な SQL インジェクションの脆弱性があります。

このプログラムを診断するコマンドは以下のようになります。

ポイントは、--data オプションで POST リクエストのパラメーターを指定しているところです。sqlmap は id と password を自動的にパラメーターと認識し、SQL インジェクションの脆弱性診断を行います。

このコマンドの実行結果は以下のようになります。

Internal Server Error が 43 回発生していますが、SQL インジェクションの脆弱性は検出されていませんね。これは診断のレベルが低いためです。

デフォルトでは Level =0 なのですが、Level は 0 ~ 5 まで指定できます。

今度は、Level = 3 で診断を行ってみます。

すると以下のように、まず id パラメーターで脆弱性が検出されました。

まだ、パラメーターが残っているので y で診断を継続します。すると、password パラメーターでも脆弱性が検出されました。

まだ、診断は続くので y で診断を継続します。

id と password に boolean-based blind の SQL インジェクションの脆弱性が診断結果に表示されました。ここでは q で処理を中断します。

おわりに

ここまで見てきたように、やり方が分かれば sqlmap で SQL インジェクションの脆弱性診断は比較的簡単にできることが分かります。

もっと踏み込んだ使用方法もあるようですが、それは参考サイトを参照してください。

SQL インジェクションは脆弱性の中でも深刻なものなので、こういうツールを活用して脆弱性をなくしていきたいですね。

参考サイト


スポンサーリンク




カテゴリー:ツール

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA