水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > ASP.NET に XSS? > 「ASP.NET に XSS?」へのコメント

「ASP.NET に XSS?」へのコメント

[2584] Re: 「ASP.NET に XSS?」

えむけい (2005年2月19日 23時47分)

これ、windows-1251にしか触れてないのは報告者がロシア人だからであって、Windows 2000以降では1バイト系のエンコーディングへの変換はすべて全角→半角のfallbackが入ってるので、同様の攻撃が成立すると思います。確かめてませんけど。

validateRequestが危険なJavaScriptっぽいものまで検査するかどうかは知りませんが、Shift_JISでもU+00A5が0x5cに変換されるってネタがありますね。って前にも似たようなことを書いた気が【謎】。

[2586] Re: 「ASP.NET に XSS?」

えむけい (2005年2月20日 10時37分)

ていうかこれってvalidateRequestに限った問題なんでしょうか【ピュア】。たとえ自分でサニタイズしたとしても、全角文字をサニタイズしていないと出力がwindows-125xのときに喰らう【謎】という話だと思うのですが。

>プログラマが外部入力値をサニタイズしていれば問題ありません。

とか言われても、全角文字まで考慮している欧米人って(日本人すら)ほとんどいないような先入観が【謎】。

まあそのためのNFKCなのですが、Cyrillic small letter aを使ったフィッシング詐欺までは防げません【謎】。

[2589] Re: 「ASP.NET に XSS?」

ばけら (2005年2月20日 13時36分)

>ていうかこれってvalidateRequestに限った問題なんでしょうか【ピュア】。たとえ自分でサニタイズしたとしても、全角文字をサニタイズしていないと出力がwindows-125xのときに喰らう【謎】という話だと思うのですが。

 おっと。そうかもしれないですね。

 暇なときに検証してみます。

[2591] Re: 「ASP.NET に XSS?」

ばけら (2005年2月20日 17時19分)

>ていうかこれってvalidateRequestに限った問題なんでしょうか【ピュア】。たとえ自分でサニタイズしたとしても、全角文字をサニタイズしていないと出力がwindows-125xのときに喰らう【謎】という話だと思うのですが。

 検証しましたが、これはその通りのようです。

 の内容を拡張子 .aspx にしたのが以下。

 発動してますね。

[2592] Re: 「ASP.NET に XSS?」

えむけい (2005年2月20日 18時53分)

ResponseEncoding="Shift_JIS"でU+00A5を吐き出した場合のテストも希望。こちらは日本人にとっても他人事ではないはずなので。

ちなみにこれをASP.NETの欠陥として捉えた場合、修正するにはresponseEncodingへ変換するときにfallbackを禁止することになると思います。変換に使ってるはずのAPIにはその機能があります。

http://msdn.microsoft.com/library/en-us/intl/unicode_17si.asp

http://msdn.microsoft.com/workshop/misc/mlang/reference/ifaces/imultilanguage2/convertstringfromunicodeex.asp

でもこの機能をASP.NETのアプリケーションから指定する方法があるのか、MSがパッチを出さないとどうしようもないのかは知りません【謎】。

[2593] Re: 「ASP.NET に XSS?」

ばけら (2005年2月20日 21時8分)

>ResponseEncoding="Shift_JIS"でU+00A5を吐き出した場合のテストも希望。こちらは日本人にとっても他人事ではないはずなので。

 0xA5 なビット列がそのまんま出力されるようです。

 こんな感じ。

[2594] Re: 「ASP.NET に XSS?」

えむけい (2005年2月21日 9時14分)

> 0xA5 なビット列がそのまんま出力されるようです。

私の環境だと 0x5C なビット列が出力されているように見えますが(Windows 2000 SP4/IE 5.01 SP4)。ていうかサーバ側が送り出すデータの問題だから閲覧環境が関係あるわけありませんか【謎無】。

どういう根拠で「0xA5 なビット列」と判断したのでしょうか【ピュア】。ちなみにこちらでは IE のキャッシュに格納されている response-encoding-test2.aspx をバイナリエディタで覗きました。

ていうか ASP.NET のソースファイルは UTF-8 とかで書けないのですか【ピュア】むらまささん【誰】。書ければ Test1 と同様な手法で簡単に確認できるはずですが。

[2595] Re: 「ASP.NET に XSS?」

えむけい (2005年2月21日 9時47分)

ていうか本当に「0xA5 なビット列」が Shift_JIS で「そのまんま」出力されたら半角カナの「・」に見えるはずですがそうなのですか? 【ピュア】。私【誰】の環境では円記号のようなもの【謎】が2つ並んで見えてます。とりあえずスクリーンショット希望。

ご参考【謎】:

http://www.ne.jp/asahi/minazuki/bakera/html/book/site2

[2596] Re: 「ASP.NET に XSS?」

えむけい (2005年2月21日 10時18分)

Windowsサーバーのくせに【謎】bmpには対応していませんか。

[2598] Re: 「ASP.NET に XSS?」

ばけら (2005年2月21日 11時45分)

>> 0xA5 なビット列がそのまんま出力されるようです。

>私の環境だと 0x5C なビット列が出力されているように見えますが

 あらためて確認したら確かに 0x5C でした。

 あるいは何か幻を見ていたのかもしれません。

[2599] Re: 「ASP.NET に XSS?」

むらまさ (2005年2月21日 11時59分)

>ていうか ASP.NET のソースファイルは UTF-8 とかで書けないのですか【ピュア】むらまささん【誰】。書ければ Test1 と同様な手法で簡単に確認できるはずですが。

VS.NETとかだと、デフォルトではUTF-8なソースになるはずです。

[2600] Re: 「ASP.NET に XSS?」

ばけら (2005年2月21日 12時14分)

>>ていうか ASP.NET のソースファイルは UTF-8 とかで書けないのですか【ピュア】むらまささん【誰】。書ければ Test1 と同様な手法で簡単に確認できるはずですが。

>VS.NETとかだと、デフォルトではUTF-8なソースになるはずです。

 実は最初は UTF-8 で書いてみたのですが、残念な思いをしたので Shift_JIS にして書き直したのです。

新規投稿フォーム

※広告や宣伝の書き込みはご遠慮ください。

:

:

:

最近の日記

関わった本など