関連記事
ECサイトの本番環境のセキュリティ診断で全ユーザーのパスワードが一時初期化される
とあるWebアプリケーションに対し脆弱性診断を行ったところ、そのWebアプリケーションの全ユーザーアカウントのパスワードが初期化されるというトラブルが発生した話が話題になっている。
診断対象のシステムは本番稼動環境だったとのことで、一歩間違えれば大問題に発展するところであったが、幸い診断の実行前にデータベースのバックアップが取られていたとのことで、大事には至らなかったという。
興味深いのは、このパスワードリセットがSQLインジェクションによって引き起こされたという点だ。具体的には、ユーザーがパスワードを忘れた際にパスワードをリセットする部分にバグがあり、そこで入力させられるメールアドレスに「'+'」という文字列を含んだ文字列を指定すると、すべてのユーザーのパスワードがリセットされるようになっていたという。
このシステムではSQLインジェクション対策が適切に行われておらず、このようなメールアドレスを指定すると、「'+'」という文字列が含まれたままでSQL文が発行されてしまっていたようだ。MySQLでは文字列に対し「+」演算子を使用すると、文字列を数値として評価してしまうという「暗黙の型変換」が発生する。その結果where句内が適切に機能せず、すべてのアカウントを対象に操作が実行されてしまったという話のようだ。
スラッシュドットのコメントを読む | セキュリティセクション | セキュリティ
関連ストーリー:
今まで見た中で最もひどいDBのテーブル設計は? 2014年03月06日
お手軽クラッカーの台頭 2013年04月11日
MySQL、ブラインド SQL インジェクションにより情報漏洩が発生 2011年03月28日
IISを狙った大規模なSQLインジェクション攻撃発生中 2010年06月17日
最も危険なプログラミングエラーTop 25、2010年版 2010年02月19日
※この記事はスラドから提供を受けて配信しています。
スポンサードリンク