My Photo

« jQueryで非同期な処理が終わるのを待つにはDeferredを使う | Main | クロスサイト・スクリプティング(XSS)その2 »

September 08, 2013

クロスサイト・スクリプティング(XSS)

発生箇所 Webアプリケーション上でHTML、JavaScriptを生成している箇所
影響の種類 Webサイト利用者のブラウザJavaScriptの実行
  • 攻撃者の用意したスクリプトの実行によりクッキー値が盗まれる。
  • 攻撃者の用意したスクリプトの実行によりサイト利用者の権限でWebアプリケーションの機能が悪用される。
偽情報の表示
  • 偽の入力フォームが表示され、フィッシングにより個人情報が盗まれる。

受動的攻撃によりクッキー値を盗む

脆弱なサイトの正規利用者を罠サイトに誘導して以下のようにクッキー値を盗みだす攻撃が考えられる。

  1. 罠サイトのiframe内で脆弱なサイトを表示される。
  2. 脆弱なサイトはXSS脆弱性により、クッキー値をクエリ文字列に付けて情報収集ページに遷移する。
  3. 情報収集ページは受け取ったクッキー値をメールなどで攻撃者に送信する。

画面の書き換え

form要素のある画面でXSS脆弱性を使って画面を書き換え、元のformを隠して偽のformを表示することによって情報を盗むことが考えられる。

反射型XSSと持続型XSS

攻撃用のJavaScriptがどこにあるかによってXSS攻撃を分類すると以下に分けられる。

反射型XSS
  • 攻撃用JavaScriptが攻撃対象サイトとは別のサイトにある(罠サイトやメールのURL)。
  • 多くの場合、入力値をそのまま表示するページ(例えば入力値の確認用のページ)で発生する。
持続型XSS
  • WebメールやSNSに攻撃用JavaScriptを仕込むタイプ。
  • 攻撃側のメリットとして、罠サイトに利用者を誘導する手間がかからない、また注意深い利用者でも被害にかう可能性が高いことがある。

対策

対策として以下がある。

必須対策

  • HTMLの要素内容をエスケープする。
  • HTMLの要素の属性値をエスケープしてダブルクウォートで囲む。
  • HTMLレスポンスに文字エンコーディングを明示する。

エスケープにはPHPではhtmlspecialchars()を使用する。
htmlspecialchars()はデフォルトでは<、>、&、"をエスケープする。

予防的対策

  • 入力値を検証する。
  • クッキーにHttpOnly属性を付与する。
  • TRACEメソッドを無効化する。

TRACEメソッドの無効化はクロスサイト・トレーシング(XST)攻撃への対策(参考ページを参照)。

参考文献:体系的に学ぶWebアプリケーションの作り方 4.3.1 クロスサイトスクリプティング(基本編)

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
徳丸 浩

ソフトバンククリエイティブ 2011-03-03
売り上げランキング : 4070

Amazonで詳しく見る
by G-Tools

参考ページ:
実はそんなに怖くないTRACEメソッド | 徳丸浩の日記
TRACEメソッドって怖いんです - カイワレの大冒険

« jQueryで非同期な処理が終わるのを待つにはDeferredを使う | Main | クロスサイト・スクリプティング(XSS)その2 »

PHP」カテゴリの記事

セキュリティ」カテゴリの記事

プログラミング、技術情報」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/58152668

Listed below are links to weblogs that reference クロスサイト・スクリプティング(XSS):

« jQueryで非同期な処理が終わるのを待つにはDeferredを使う | Main | クロスサイト・スクリプティング(XSS)その2 »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof