IEとOperaでプレーンテキスト出力にもXSS脆弱性 16
ストーリー by Oliver
忘れてはいけない放置穴 部門より
忘れてはいけない放置穴 部門より
k3c 曰く、 "セキュリティmemoメーリングリストへの投稿で指摘されたところによれば、Content-Type:text/plainなデータをInternet Explorer(IE)に表示させたとき、テキスト中にHTMLタグが入っていればContent-Typeを無視してHTMLとして解釈してしまうことがあり、結果として、外部からの入力結果をそのままContent-Type:text/plainなデータの一部として返すようなCGIではクロスサイトスクリプティング(XSS)脆弱性を発現させてしまう可能性がある。この問題はIEがContent-Typeを無視することが問題の根本なのだが、過去にもたびたび 指摘されて来たにもかかわらずマイクロソフトはこの問題点を放置しており、今後も修正は望み薄。サーバ側での対策が望ましい。この機会に、手元のCGIでは問題はないか、通常のHTML出力だけでなくデバッグ出力やエラーメッセージもチェックしてほしい。
なお、直後の投稿では、Operaでも出荷時の設定では同様の動作をすることが指摘されている。"
.TXTで色々動くよ (スコア:2, 参考になる)
MSには連絡しようとしたけど無視されたので、それ以上の調査はやる気がうせて放置モードに入ってましたが、その時の感触ではIEが対応している物なら何でも「.TXT」で経由で色々動かせる気がしました。
ワクチンの標準は.TXTはチェック対象外だよね?
ヤバイ物を仕掛けたページのリンクは、.TXTにされると危険かなと。
どう解釈すればよろし? (スコア:0)
どう解釈すればよろし?
1. MSに連絡した+無視された(MSに?)
2. MSに連絡しようとしたことを無視された(誰に?)
3.自由記述( )
詳細は (スコア:1)
MSKKをあてにした自分がバカだったと気づき、MSにメールで連絡しようとしたけど、連絡先を見つけられず、連絡先探しに四苦八苦してるうちにアホらしくなって放置した。
う~ん、精密には2番が正解。(誰に?)はMSKKでした。
Re:詳細は (スコア:0)
ごくろうさまでした>shamさん
Re:どう解釈すればよろし? (スコア:0)
Operaの出荷時設定は.... (スコア:1)
この問題はサーバー側の設定の問題(そもそも正しいMIME Typeを送ってこない)もあるので、一筋縄では行かないような気もしますが....
なぜ text/html ? (スコア:3, 参考になる)
AddType を自由に追加出来ないプロバイダはあるでしょうけど、
それで未知のタイプだった場合に、
text/html として扱わなければならない理由が分かりません。
(HTTP/0.9 の simple response の場合はともかくとして)
CGI 出力なら問題なく Content-Type を出せるでしょうし、それを怠るのは
CGI 製作者の責任かと。
どうでもいいけど、IE で Linux 版JDKのシェルスクリプト版を落とそうとすると、
前半がテキストだからということで、強制的にブラウザに表示しちゃう。
POST だから「リンク先を保存」も使えない-_-。
Re:なぜ text/html ? (スコア:2, 参考になる)
> それで未知のタイプだった場合に、
> text/html として扱わなければならない理由が分かりません。
補足。まずは、過去にも紹介されてたとおもうけど、これ。
http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/moniker/overview/appendix_a.asp
# 未知の、といういい方は正しくなくて、text/html と判断されたら、と書くべきでした_o_。
たとえば、サーバが知らない画像フォーマットで、拡張子-> MIME type
マッピングがされていないせいで、text/plain で送出されるとする。
ブラウザはその中身から解釈可能なフォーマットであることが判明すると、
それようのレンダラにファイルを渡す。
この仕組み自体は存在しないと困るユーザも多いんでしょうね。
# というか、excel フォーマットとか最近サポートされた画像フォーマットなんかを
# (たとえブラウザがサポートしていても)インライン表示出来ないことになるし。
で、何で text/html を自動判別する必要があるの? となるんですが^^
html については、間違った Content-Type で送られてくることはほとんど
ないように思われます。あった場合は、サーバ/CGIの不備と言い切ってよいと。
text/html のみ自動判別をやめることで、具体的に問題のあるケースが
あれば知りたいです。
上記の自動判別対象の MIME type 一覧を見ると、text/html 以外はまぁ
危険は少なそうですがどうでしょうねぇ(application/java は…^^)。
この問題に加えて Content-Disposition の扱いも怪しいんだよなぁ…。
Re:なぜ text/html ? (スコア:0)
> 前半がテキストだからということで、強制的にブラウザに表示しちゃう。
> POST だから「リンク先を保存」も使えない-_-。
あーこれこれこれ、俺もドツボに嵌った。
そーいう機能をつけるのいいけど、殺す方法も用意してくれ~。
Re:Operaの出荷時設定は.... (スコア:1)
信頼できないMIME Typeだったらデータも信頼できない、なんてなことは無いもんなんでしょうか?(^^;
余談:
CSVのMIME Typeって何だろう?
Re:Operaの出荷時設定は.... (スコア:2, 参考になる)
回答ではない参考:http://www.silverstream.jp/Support/faq_7.html#Q16 [silverstream.jp]
- Ryuzi Kambe -
Re:Operaの出荷時設定は.... (スコア:0)
IANAに登録されてないです…たぶん (スコア:0)
Re:Operaの出荷時設定は.... (スコア:1)
Re:Operaの出荷時設定は.... (スコア:1)
Windows版でも推奨設定が「MIMEタイプで処理を判断」なのに、出荷時設定が逆になっているのは、IEとの整合性を意識したためという推測には一理あると思います。
Re:Operaの出荷時設定は.... (スコア:0)
MIMEを無視して「拡張子」で判断する、っていうのは場合によっては有効だと思うけど(未知のバイナリをtext/plainで送られたりとか)、「実