サーバークラッキング(2)

シリーズ化決定です。
第2弾は、「SQLインジェクション」です。ただし、単純なSQLインジェクションではなくて、HTTPサーバーのクラックと連動させたタイプのものです。
環境は、昨日書いたものと同じということにします。つまり、WebサーバーとDBサーバーがファイアーウォールで区切られたDMZ内においてあります。
このWebサイトは、入力値チェックとサニタイジングはきっちりと行っていて、SQLインジェクションの攻撃に関しての脆弱性は、全く持っていないとします。
そして、HTTPサーバーに脆弱性があるとします。これは、既知の脆弱性でもゼロデイでもどちらでもよいですが、クラッカーはこの脆弱性を元に、HTTPサーバーをクラックして、サイトのPHPソースコードの一部を直接閲覧・編集できるようになりました。
ただし、クラッカーが得たのはそれだけの権限で、他のPHPソースにはアクセスできませんし、PHPソースの新規作成・削除もできません。PHPのソース以外のファイルを読むことも書き込むこともできませんし、実行ファイルの実行権限もありません。さらに、アクセス可能になったPHPソースには、たまたまSQL文がかかれていなくて、SQLの発行は、別のファイルにSQLアクセス関数群としてまとめてあって、閲覧することも、編集することもできないとします。当然、パスワードも接続文字列も分からないので、直接DBアクセスAPIを呼び出すこともできません。
そこでクラッカーは、アクセス可能なPHPソースの入力値チェックとサニタイジングのコードをコメントアウトしてしまいました。これによって、Webサイトは、SQLインジェクションに対して脆弱なコードになってしまいます。
ここまでくれば、後は、一般的なSQLインジェクションの手法を使って、データを取り出すだけです。おしまい。