タグ

IEと文字コードに関するraimon49のブックマーク (6)

  • Masato Kinugawa Security Blog: U+2028/2029とDOM based XSS

    ECMAScriptの仕様では、0x0A/0x0D以外にU+2028/2029の文字も改行とすることが明記されています。 これはあまり知られていないように思います。 以下はアラートを出します。 <script> //[U+2028]alert(1) </script> 知られていないだけでなく、知っていたとしても、スクリプトで文字列を処理するときに、U+2028/2029まで考慮する開発者がどれだけいるのかという話です。 実際、U+2028/2029を放り込むと文字列リテラル内にその文字が生のまま配置され、エラーが出るページは当にたくさんあります。まあ、エラーがでるだけなら、大抵の場合大きな問題にはなりません。 ところが、U+2028/2029によってXSSが引き起こされてしまう場合というのを最近実際に見ました。 Googleのサービスで見つけた2つのケースを取り上げたいと思います。 ケ

  • Masato Kinugawa Security Blog: accounts.google.comに存在したXSS

    Googleの脆弱性報酬制度の報酬がアップされましたね! Google、脆弱性情報に支払う報奨金を大幅アップ - ITmedia エンタープライズ http://www.itmedia.co.jp/enterprise/articles/1306/10/news027.html Googleアカウントページに存在するクロスサイトスクリプティング(XSS)の脆弱性情報については3133.7ドルから7500ドル accounts.google.comのXSSは$7,500 だそうです。みつけたいですね! みつけるのはかなり厳しいと思いますが、かつて2つみつけたことがあります。 今日はそのうち1つを紹介したいと思います。 oeパラメータを使ったXSS 2012年12月27日に報告し修正された問題です。 Googleは、一部のサービスで「oe」というクエリパラメータを付加することで、ページの表示に

    raimon49
    raimon49 2013/06/19
    UTF-32をサポートしていないブラウザに対してメタ文字として誤認させる。こんなの良く思い付くなぁ。凄い。
  • JSONのエスケープをどこまでやるか問題 - 葉っぱ日記

    Ajaxなアプリケーションにおいて、サーバからJSONを返す場合に、JSON自体はvalidであるにも関わらず、(IEの都合で)エスケープが不足していて脆弱性につながってる場合があるので、書いておきます。 発生するかもしれない脆弱性 JSONのエスケープが不足している場合に発生する可能性のある脆弱性は以下の通りです。 JSON内に含まれる機密情報の漏えい XSS それぞれの詳細については後述します。 開発側でやるべきこと 文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープすることにより、前述の脆弱性を防ぐことができます。 Perlであれば、以下のような感じになります。JSON->ascii(1) に続けて、JSON文字列を正規表現で置換しているあたりがキモになります。 use utf8; u

    JSONのエスケープをどこまでやるか問題 - 葉っぱ日記
    raimon49
    raimon49 2011/07/06
    >文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープする
  • Google's Vulnerability Reward Program - ma<s>atokinugawa's blog

    Googleは2010年11月からGoogleのウェブアプリケーションのセキュリティ脆弱性を報告した人に報酬を支払う制度をスタートしました。僕も早速いくつか報告し、以前TwitterGoogleから$7337頂いたよとつぶやきましたが、あれから新たに$6337の入金があり、今のところこの制度で$13174($1337 × 2 + $1000 × 2 + $500 × 17)を頂いています!ありがとう! 追記 7337+6337=13674なので入金があったのは$13674($1337 × 2 + $1000 × 2 + $500 × 18)でした。合計を間違えてました。足し算難しい!><+$500! 修正されたものは情報を公開してもいいとのことなので、報告した中から多少変わったタイプの脆弱性を3つ紹介しようと思います。 <script>タグのsrcを細工することによるXSS こんなページ

    Google's Vulnerability Reward Program - ma<s>atokinugawa's blog
    raimon49
    raimon49 2011/02/11
    よく思い付くなぁ。
  • 川o・-・)<2nd life - bookmarkletの文字数制限を無くす

    bookmarkletを作るとき、IEでは500文字ちょい、Firefoxでは2000文字ぐらい(?)の文字数制限がある。また、作った後に一行にまとめたり、デバッグしたりも大変面倒。でもそれがとても簡単な方法でどうにでもなることをインターフェイス!インターフェイス!の人に教わった。 javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="http://example.com/example.js";document.body.appendChild(s)})(); createElementでscript要素を作って、その中にhttp://example.com/example.jsとソースを指定することによってそのJSを実行できる。WinIEとFirefoxでは確認済み。

    川o・-・)<2nd life - bookmarkletの文字数制限を無くす
    raimon49
    raimon49 2008/11/19
    script要素を作ってサーバ側のJSファイルを読み込むことで文字数制限を回避する。コードの一括管理も可能になる。
  • 葉っぱ日記 - レジストリの HKCR¥MIME¥Database¥charset 以下に定義されています。

    UTF-7を利用したXSSは、charset が指定されていない場合に発生すると考えられていますが、少なくとも Internet Explorer においては、これは大きな間違いです。正しくは、Internet Explorer が認識できる charset が指定されていない場合であり、charsetが付加されていても、IEが認識できない文字エンコーディング名である場合にはXSSが発生します。 例えば、次のような HTML は(HTTPレスポンスヘッダで charset が明示されていない場合)IEが文字エンコーディング名を正しく認識できないため、その内容からUTF-7と解釈されるためにスクリプトが動作します。"utf8"という表記はUTF-8の慣用的な表現ではありますが、ハイフンが抜けており正しい表記ではありません。 <html> <head> <meta http-equiv="Co

    葉っぱ日記 - レジストリの HKCR¥MIME¥Database¥charset 以下に定義されています。
  • 1