| SQLインジェクション対策はおすみですか? 開発開始時点からのコンサルティングから、公開済みWebサイトの脆弱性検査、 脆弱性発見後の適切な対策まで |
2008-06-27 複文が利用できるデータベースの調査(2)
●SQL Serverが狙われるにはまだまだ理由がある
徳丸浩の日記 - 複文が利用できるデータベースの調査 - SQL Serverが狙われるには理由があるにおいて、SQLインジェクションで別のSQL文を注入するためには、複文のサポートが必要で、SQLインジェクションの文脈でこれが可能であるDBMSはMS SQL ServerとPostgreSQLであることを示した。
ここで、複文を記述するには、セミコロン「;」で複数のSQL文を区切ると説明していたが、マイクロソフトの公表している文書によると、SQL Serverにおいては、複文の区切りにセミコロンは必要ないことが分かったので報告する
注意 複数の SQL ステートメントを区切るのに、セミコロンは必ずしも必要ありません。必要かどうかは、ベンダまたはインプリメンテーションによって異なりますが、Microsoft SQL server では不要です。たとえば、以下は SQL Server では 2 つの別々のステートメントとして解析されます。
SELECT * FROM MyTable DELETE FROM MyTable
[How To: ASP.NET で SQL 注入から保護する方法より引用]
なんてこったい。20年近くSQLを使ってきたが、複文の区切りでセミコロンが要らない(場合がある)なんて初めて知った。さっそく試してみた。
rs = st.executeQuery("select * from test update test set num2=7777");
見ての通りJavaで試したのだが、すんなり動いてしまった
同じようにPostgreSQLでも試してみた(こちらはPHP)が、エラーとなった。ベンダー依存ということだが、メジャーなDBでは、セミコロンなしで複文が書ける(プログラム中で)のはMS SQL Serverだけらしい。
こんなことを知っても実用的な意味はほとんどないのだが、私にとっては重大な成果があった。SQLインジェクション対策としてセミコロンを削除するよう説明している解説がある(例えばこれ)が、頻発するSQL Serverに対するSQLインジェクション対策としてのセミコロン削除はまったく意味がないことがはっきりしたことになる。
- http://www.tokumaru.org/ ×125
- http://d.hatena.ne.jp/ockeghem/ ×89
- http://www.hash-c.co.jp/ ×59
- http://takagi-hiromitsu.jp/diary/20080620.html ×43
- http://www.tokumaru.org/JavaScript/ ×39
- http://takagi-hiromitsu.jp/diary/ ×33
- http://d.hatena.ne.jp/ockeghem/20080622/p1 ×29
- http://www.hash-c.co.jp/d/ ×19
- http://yamagata.int21h.jp/d/ ×17
- http://labs.cybozu.co.jp/blog/takesako/2007/08/lls... ×9
- http://yamagata.int21h.jp/d/?date=20080627 ×8
- http://www.hash-c.co.jp/d/20080622.html ×7
- http://okyuu.com/ja/tips/986 ×7
- http://bakera.jp/ebi/topic/3133 ×6
- http://d.hatena.ne.jp/ockeghem/20080622/p2 ×6
- http://d.hatena.ne.jp/Kiske/20080707/1215428859 ×5
- http://okyuu.com/ja/tips/1546 ×5
- http://search.live.com/results.aspx?q=fizzbuzz&for... ×5
- http://b.hatena.ne.jp/HiromitsuTakagi/ ×5
- http://b.hatena.ne.jp/entry/http://www.tokumaru.or... ×5
- http://takagi-hiromitsu.jp/diary/200806.html ×5
- http://d.hatena.ne.jp/ockeghem/searchdiary?word=SQ... ×4
- http://www.hash-c.co.jp/index.html ×4
- http://d.hatena.ne.jp/Kiske/20080707/1215394733 ×4
- http://d.hatena.ne.jp/ockeghem/20080708 ×4
- http://b.hatena.ne.jp/entrylist?sort=hot&of=100&th... ×3
- http://b.hatena.ne.jp/HiromitsuTakagi/SQLインジェクション/... ×3
- http://b.hatena.ne.jp/Kanatoko/ ×3
- http://clip.nifty.com/entry/fd6be9504bfb8cb9a4d1be... ×3
- http://search.live.com/results.aspx?q=rebinding&fo... ×3
- http://b.hatena.ne.jp/HiromitsuTakagi/20080602 ×3
- http://press.eek.jp/result/He/He he アップローダー ×3
- http://d.hatena.ne.jp/ockeghem/20080708/p1 ×3
- http://b.hatena.ne.jp/keyword/サニタイズ ×3
- http://b.hatena.ne.jp/t/escape ×2
- http://b.hatena.ne.jp/keyword/java ×2
- http://d.hatena.ne.jp/ockeghem/20071210/p1 ×2
- http://clip.livedoor.com/page/1094813/徳丸浩の日記 - XSS... ×2
- http://209.85.141.104/search?q=cache:FINZ23JWaeMJ:... ×2
- http://labs.cybozu.co.jp/blog/kazuho/archives/2007... ×2
- http://clipp.in/ ×2
- http://postgresql.g.hatena.ne.jp/iakio/20080627/12... ×2
- http://b.hatena.ne.jp/entrylist?sort=hot&of=200&th... ×2
- http://tokumaru.org/d/20080601.html ×2
- http://d.hatena.ne.jp/ockeghem/20070502/1178042280... ×2
- http://b.hatena.ne.jp/entrylist?sort=hot&of=50&thr... ×2
- http://b.hatena.ne.jp/Kanatoko/favorite ×2
- http://wordtantei.com/result/bmp/bmp jpeg ×2
- http://209.85.175.104/search?q=cache:FC8LJ8TBxK4J:... ×2
- http://wordtantei.com/result/bmp/bmp gif 変換 ×2
- http://search.live.com/results.aspx?q=imagefight&f... ×2
- http://www.devnull.jp/tdiary/20070907.html ×2
- http://www.tokumaru.org/was/ ×2
- http://fastladder.com/subscribe/http://www.tokumar... ×2
- http://ma.gnolia.com/people/mincemaker/tags/sql ×2
- http://b.hatena.ne.jp/ockeghem/sqlインジェクション/?mode=d... ×2
- http://kuwa.cside.com/diary/index.shtml ×2
- http://b.hatena.ne.jp/hotentry?mode=daily&date=200... ×2
- http://www.tokumaru.org/techterm/ ×2
- http://b.hatena.ne.jp/hotentry?mode=daily&date=200... ×2
- http://d.hatena.ne.jp/teracc/20070715 ×2
- http://209.85.175.104/search?q=cache:t4Ux8QYXLioJ:... ×2
- http://b.hatena.ne.jp/entry/8817669 ×2
- http://reader.livedoor.com/subscribe/http://www.to... ×2
- http://b.hatena.ne.jp/ockeghem/ ×2
- http://209.85.141.104/search?q=cache:gkIjjbtVprMJ:... ×2
- http://wordtantei.com/result/bmp/bmp pdf 変換 ×2
- http://a.hatena.ne.jp/yamagata21/ ×2
- http://tokumaru.org/ ×1
- http://www.tokumaru.org/JavaScript/index.htm ×1
- http://press.eek.jp/result/gif/gif 検査 ×1
- http://yamagata.int21h.jp/d/?category=セキュリティ;year=... ×1
- http://twitter.1x1.jp/search/?keyword=teknocat ×1
- http://yamagata.int21h.jp/d/?date=20080601 ×1
- http://www.fvd.fujitsu.com/fvd_only/cgi-bin/denyac... ×1
- http://wafful.org/mod_imagefight/mod_imagefight.c ×1
- http://search.live.com/results.aspx?q=SQL Server&f... ×1
- http://www.tokumaru.org/d/20080601.html ×1
- http://reader.livedoor.com/subscribe/http://www.to... ×1
- http://r.hatena.ne.jp/pero1/セキュリティ/ ×1
- http://www.rider-n.sakura.ne.jp/blog/cat1/ ×1
- http://www.hash-c.co.jp ×1
- http://search.www.infoseek.co.jp/Web?svp=SEEK&qt=j... ×1
- http://www.tokumaru.org ×1
- http://search.livedoor.com/search/?k=search&ie=utf... ×1
- http://wordtantei.com/result/bmp/bmp jpg 変換 ×1
- http://wordtantei.com/result/bmp/bmp jpeg変換 ×1
- http://search.live.com/results.aspx?q=SQL 型変換&form... ×1
- http://www.rider-n.sakura.ne.jp/blog/2008/06/20086... ×1
- http://postgresql.g.hatena.ne.jp/iakio/20080603/12... ×1
- http://search.live.com/results.aspx?q=seozone&form... ×1
- http://www.devnull.jp/tdiary/ ×1
- http://twitter.com/teknocat/statuses/891712317 ×1
- http://search.live.com/results.aspx?q=T-SQL 定数&... ×1
- http://yamagata.int21h.jp/d/?date=20080630 ×1
- http://yuki-lab.jp/diary/diar0806.html ×1
- http://www.math.sansu.org/u/diary/?date=20070604 ×1
- http://reader.livedoor.com/subscribe/http://www.to... ×1
- http://postgresql.g.hatena.ne.jp/iakio/?word=*[Per... ×1
- http://press.eek.jp/result/gif/gif 画像 ×1
- mod_imagefight ×17 / 徳丸 浩 ×12 / SQLServer セミコロン ×11 / キーワード不明 ×11 / javascript break ×10 / sqlServer セミコロン ×10 / 徳丸浩 ×8 / 徳丸 SQL ×7 / switch 脱出 ×6 / SQLインジェクション 対策 ×6 / javascript ラベル ×5 / 画像XSS ×5 / ESCAPE SQL ×4 / 画像 XSS IE ×4 / http://www.tokumaru.org/d/20080502.html ×4 / 徳丸浩の日記 ×4 / xss javascript ×3 / http://www.tokumaru.org/d/20080627.html ×3 / sql エスケープ ×3 / sqlインジェクション対策 徳丸 ×3 / http://www.tokumaru.org/d/20080602.html ×3 / pg_escape_string ×3 / Webアプリケーションのセキュリティ完全対策―不正アクセスや情報漏洩を防ぐ ×3 / sql シングルクォート エスケープ ×3 / Webアプリケーションの入力文字 ×2 / 画像 xss jpg ×2 / クロスサイトスクリプティング 検証 ×2 / http://www.tokumaru.org/d/20080601.html ×2 / sql 複文 ×2 / Shift_JIS エスケープ ×2 / SQL 複文 SQLServer ×2 / sql インジェクション ×2 / Oracle WHERE句 数値型 クォート ×2 / postgresql SQL エスケープ文字 ×2 / sql server セミコロン インジェクション ×2 / アップロード 攻撃 javascript 正規表現 ×2 / エスケープ インジェクション オラクル ×2 / SQl 複文 ×2 / sql 数値変数 ×2 / sql あるか ×2 / 脱出 SWITCH ×2 / mysql sqlインジェクション エスケープ ×2 / sql セミコロン ×2 / sql インジェクション postgres escape ×2 / javascript for break ×2 / 入力値検証 ×2 / postgresql 数値 クォート ×2 / SELECT 複文 ×2 / SQL ORA-01722 ×2 / postgresql 改行文字 エスケープ ×2 / ORA-01722 文字列変数へ数値 ×2 / SQLSERVER SQL インジェクション ×2 / DbCommandBuilder ×2 / java sql インジェクション executequery セミコロン ×2 / SQL 複文 ×2 / javascript switch ×2 / 佐名木 MySQL バックスラッシュ ×2 / Oracle SQL エスケープ ×2 / 脱出 switch ×2 / SQL 2008 セミコロン ×2 / sql server 記号 エスケープ ×2 / sqlインジェクション対策 ×2 / 画像ファイル サニタイズ ×2 / SQL エスケープ ×2 / ASP SQL セミコロン ×2 / 被害が続くSQLインジェクション攻撃 コメント ×2 / SQL エスケープ 文字 ×2 / プログラム Fizz Buzz ×2 / oracle シングルクォート ×2 / sql server like エスケープ ×1 / ASP SQLServer インジェクション ×1 / サニタイジング イベントハンドラ クロスサイトスクリプティング ×1 / テスト画像 ×1 / break ×1 / sql server エスケープ ×1 / 金床 セキュリティ ×1 / 複文 SQL ×1 / SQL シングルクオート エスケープ ×1 / javascript label ×1 / クロスサイト セミコロン ×1 / SQLインジェクション チェック 方法 ×1 / ファイル イメージ GIF ×1 / sqlインジェクション </html> ×1 / Transact IN 引用符 エスケープ ×1 / contenttype イメージ ×1 / SQLserver 区切り ×1 / sql escape ×1 / Switch 脱出 ×1 / SQLインジェクション 検査結果 ×1 / SQLインジェクション 対策 まとめ ×1 / mssql 変数 エスケープ ×1 / 画像アップロード サニタイズ ×1 / java エスケープ SQL セミコロン ×1 / エスケープ文字 バインド ×1 / SQLインジェクション ×1 / はてな クロスサイト ×1 / sql escape = ×1 / PHP SQL HTML エスケープ ×1 / プログラム ループ 抜ける ×1 / ラベル付きbreak ×1
| SQLインジェクション対策はおすみですか? 開発開始時点からのコンサルティングから、公開済みWebサイトの脆弱性検査、 脆弱性発見後の適切な対策まで |