「ASP.NET に XSS?」へのコメント
「水無月ばけらのえび日記 : ASP.NET に XSS?」について、12件のコメントが書かれています。
[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
でもこの機能を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つ並んで見えてます。とりあえずスクリーンショット希望。
ご参考【謎】:
[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 にして書き直したのです。
「水無月ばけらのえび日記 : ASP.NET に XSS?」についてコメントを書く場合は、以下のフォームに記入してください。