パスワードを忘れた? アカウント作成
3123 story

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, 参考になる)

    by sham (4555) on 2002年06月03日 18時07分 (#101791)
    MS-Office2000が出て直ぐの頃に同種のネタをセキュリティmemoにたれこんだ事ありますが、その時は、今回と同じ問題と、さらに拡張子が「.TXT」でIE内にExcelが起動するでした。
    MSには連絡しようとしたけど無視されたので、それ以上の調査はやる気がうせて放置モードに入ってましたが、その時の感触ではIEが対応している物なら何でも「.TXT」で経由で色々動かせる気がしました。

    ワクチンの標準は.TXTはチェック対象外だよね?
    ヤバイ物を仕掛けたページのリンクは、.TXTにされると危険かなと。
    • > MSには連絡しようとしたけど無視されたので

      どう解釈すればよろし?
          1. MSに連絡した+無視された(MSに?)
          2. MSに連絡しようとしたことを無視された(誰に?)
          3.自由記述( )
      • by sham (4555) on 2002年06月04日 0時50分 (#102026)
        MSKKに挙動を連絡し、再現できる環境を用意して会って詳細の説明をする約束をしてたけど、すっぽかされた。
        MSKKをあてにした自分がバカだったと気づき、MSにメールで連絡しようとしたけど、連絡先を見つけられず、連絡先探しに四苦八苦してるうちにアホらしくなって放置した。

        う~ん、精密には2番が正解。(誰に?)はMSKKでした。
        親コメント
        • by Anonymous Coward
          「どう解釈すればよろし?」を書き込んだACです。

          ごくろうさまでした>shamさん
      • 3.自由記述( memo MLで無視されて自信をなくし、MSに連絡できなかった)
  • Operaの出荷時設定「信頼できないMIME Typeの場合は拡張子で判断する」ですが、これはたぶんIEと同様の動作を期待しての事じゃないかなあ。
    この問題はサーバー側の設定の問題(そもそも正しいMIME Typeを送ってこない)もあるので、一筋縄では行かないような気もしますが....
    • なぜ text/html ? (スコア:3, 参考になる)

      by rio (2333) on 2002年06月03日 17時22分 (#101777)
      > この問題はサーバー側の設定の問題(そもそも正しいMIME Typeを送ってこない)もあるので、一筋縄では行かないような気もしますが....

      AddType を自由に追加出来ないプロバイダはあるでしょうけど、
      それで未知のタイプだった場合に、
      text/html として扱わなければならない理由が分かりません。
      (HTTP/0.9 の simple response の場合はともかくとして)

      CGI 出力なら問題なく Content-Type を出せるでしょうし、それを怠るのは
      CGI 製作者の責任かと。

      どうでもいいけど、IE で Linux 版JDKのシェルスクリプト版を落とそうとすると、
      前半がテキストだからということで、強制的にブラウザに表示しちゃう。
      POST だから「リンク先を保存」も使えない-_-。
      親コメント
      • Re:なぜ text/html ? (スコア:2, 参考になる)

        by rio (2333) on 2002年06月03日 19時31分 (#101839)
        > AddType を自由に追加出来ないプロバイダはあるでしょうけど、
        > それで未知のタイプだった場合に、
        > 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 の扱いも怪しいんだよなぁ…。
        親コメント
      • by Anonymous Coward
        > どうでもいいけど、IE で Linux 版JDKのシェルスクリプト版を落とそうとすると、
        > 前半がテキストだからということで、強制的にブラウザに表示しちゃう。
        > POST だから「リンク先を保存」も使えない-_-。

        あーこれこれこれ、俺もドツボに嵌った。
        そーいう機能をつけるのいいけど、殺す方法も用意してくれ~。
    • by G7 (3009) on 2002年06月03日 18時45分 (#101809)
      >信頼できないMIME Typeの場合は拡張子で判断する

      信頼できないMIME Typeだったらデータも信頼できない、なんてなことは無いもんなんでしょうか?(^^;

      余談:
      CSVのMIME Typeって何だろう?
      親コメント
    • by joshkata (4660) on 2002年06月04日 10時16分 (#102176)
      Operaの出荷時設定「信頼できないMIME Typeの場合は拡張子で判断する」ですが、これはたぶんIEと同様の動作を期 待しての事じゃないかなあ。
      そうかもしれません。LinuxでもOperaを使っていますが、Linux版のデフォルト設定は、"Determine action by MIME type"になっていました。

      Windows版でも推奨設定が「MIMEタイプで処理を判断」なのに、出荷時設定が逆になっているのは、IEとの整合性を意識したためという推測には一理あると思います。

      親コメント
    • でも、実際は「拡張子」じゃなくて「データのなかみ」で判断だよね?
      MIMEを無視して「拡張子」で判断する、っていうのは場合によっては有効だと思うけど(未知のバイナリをtext/plainで送られたりとか)、「実
typodupeerror

日本発のオープンソースソフトウェアは42件 -- ある官僚

読み込み中...