タグ

SQLとsecurityに関するebo-cのブックマーク (2)

  • Ruby on Railsのfind_by_*メソッドにSQLインジェクション脆弱性(CVE-2012-5664) | 徳丸浩の日記

    Ruby on Rails(3.2.9, 3.1.8, 3.0.17以前)のfind_by_*メソッドにSQLインジェクション脆弱性が見つかりました(CVE-2012-5664)。このエントリではその概要と対策について説明します。 概要 Ruby on Railsのfind_by_*メソッドの引数としてハッシュを指定することで、任意のSELECT文を実行できる脆弱性があります。 検証 Ruby on Rails3.2.9の環境を用意して、以下の2つのモデルを用意しました。 $ rails g scaffold user name:string email:string $ rails g scaffold book author:string title:string モデルUserは個人情報を保持しており、自分自身の情報のみが閲覧できるという想定です。モデルBookは書誌データベースであ

    Ruby on Railsのfind_by_*メソッドにSQLインジェクション脆弱性(CVE-2012-5664) | 徳丸浩の日記
  • 隠されていたSQLインジェクション ― @IT

    サブクエリによって引き起こされるSQLインジェクションの被害 星野君 「へぇ~……」 星野君は、「なるほど」と感心した。しかし、少し考えた後で「これを悪用できるのだろうか?」という疑問がわいた。 星野君 「けど、結局のところ、メールアドレスが判別できるっていうだけの被害じゃないですか?条件文を追加したら登録情報が全件見えちゃった、とかいうわけでもないですし……」 赤坂さん 「えー。SQLインジェクションの被害って、そんな単純なのじゃないよ。この状態で、データベースの中の情報抜けちゃうって」 星野君 「え?マジっすか??」 赤坂さん 「例えば最初に、テーブル名の1文字目を判別する条件式を付けて……」 前述のように、追加するSQL文が「' and '1' = '1」などのような単純なものの場合は特に問題にならない。しかし、この条件文にはサブクエリのような複雑なものを入れることが可能なのである(

    隠されていたSQLインジェクション ― @IT
    ebo-c
    ebo-c 2011/07/15
    ブラインドSQLインジェクション。サブクエリでテーブル名の任意の文字位置の文字コードをHigh&Lowゲームしてテーブル名をゲットしちゃう。
  • 1