タグ

ブックマーク / masatokinugawa.l0.cm (9)

  • Masato Kinugawa Security Blog: たぶんXSSが理由でインターネットがとまった

    昔自分が利用者だったサイトのセキュリティ問題(XSS)をいくつか報告していたのですが、おそらくそのリクエストを理由にインターネットが使えなくなりました。プロバイダに接続を止められたのです。 そのサイトで問題をみつけたとき、サービス提供者側の反応を示す兆候がありました。 問題を発見後、しばらくしてアクセスしようとすると、アクセスを拒否されたからです。 サービス提供者には問題を報告し、アクセス拒否についても、一応、今報告してる通りこれは攻撃ではないので誤解なきようよろしくとメール連絡したところ、問題は修正されました。 これで真意は伝わり、アクセスと関連付けられ、アクセス拒否に対する誤解も解決しただろうと思ったのですが、その後急にインターネットが使えない事態にまでなるとはだれが予想できたでしょうか…。(今は携帯の回線を使っています) プロバイダから書面が届き、書面には問題の報告時とほぼ同じ日付に

  • Masato Kinugawa Security Blog: ホストの前に文字が置けることを忘れるな

    今日は、 そもそもホストの前に任意の文字列を置けるということを忘れていると、うっかりそこにJavaScriptで触ってしまった時に問題が起こる場合があるよね、という話をします。 以前紹介したlocation.hrefの問題に似ていますが、今回取り上げているのは文字列がデコードされることにより起きうる問題ではなく、文字列が取得されることで起きうる問題についてです。 まずは、様々な形でJavaScriptでURLを確認できるスーパーウェブサイトを用意致しましたので、ホストの前に文字列を含むURLが、どの値で取得されているかを実際に見てみてください。 http://user:pass@vulnerabledoma.in/location/ (※このページはURLをそのまま書きだしているため、当然DOM based XSSがありますが 、その挙動も含めて確認できるようにする目的があるので、あえてそ

  • Masato Kinugawa Security Blog: ブラウザのXSS保護機能をバイパスする(3)

    第3弾です。第1弾はこちら。第2弾はこちら。 ターゲットはIEのXSSフィルターです。 今回のバイパスは、来作成できてはならないjavascript:スキームのリンクをIEのXSSフィルターの挙動を利用して作成するという方法で行います。 いきなりですが、発見した方法はこれです。 http://vulnerabledoma.in/xssable?q=%22%3Ca%20href%3Djavascript%26.x3A%3Balert%26%28x28%3B1%26%29x29%3B//=%3Exxx 何がどうしてここにたどりついたのか、順に見ていきます。 IEは「<a href="javascript:alert(1)">xxx」のような文字列がクエリ文字列にあり、その文字列がページ中に出力されるなら、その出力の一部を書き換え、XSSを遮断しようとします。 http://vulnerabl

  • Masato Kinugawa Security Blog: jQuery Mobile 1.2 Beta未満は読み込んでいるだけでXSS脆弱性を作ります

    (2012/9/25 最後に重要な追記があります。 ) jQuery Mobile 1.2 Betaがさきほどリリースされたようです。 タイトルの通り、それに満たないバージョンのjQuery Mobileには読み込んでいるだけでXSS脆弱性を作ってしまう問題があります。お使いの方はアップデートをお勧めします。 jQuery Mobile 1.2 Beta Released | jQuery Mobile http://jquerymobile.com/blog/2012/09/05/jquery-mobile-1-2-beta-released/ 以前の記事で触れた、一部のブラウザのlocation.hrefの挙動に絡むXSSが修正されています。 以下の件とは別の修正であることに注意してください。 jQuery MobileのXSSについての解説 - 金利0無利息キャッシング – キャッシ

  • Masato Kinugawa Security Blog: 「めんどうくさいWebセキュリティ」を頂いた

    「めんどうくさいWebセキュリティ」、原著の「The Tangled Web」に僕の名前が掲載されているのをきっかけに、監修された上野さん(@sen_u)を通して、出版元である翔泳社様から献して頂きました。ありがとうございます。 こういう人にオススメです。 ・Webを隅々まで理解したい ・セキュリティに絡んだ、細かなブラウザの動きに興味がある ・自分の持っているブラウザ周辺のWebセキュリティ知識を確認したい 逆にこれからWebセキュリティを学びたい・手っ取り早くWebセキュリティの知識をつけたいという人にはお勧めできません。踏み込んだ話ばかりなので、最初に手に取るには細かすぎると思います。(徳丸をどうぞ!) このでは、URL/HTTP/HTMLなどのWebの構成要素を詳細に見ていくことで、ブラウザのセキュリティがどのように成り立っているかや、そこにどのようなセキュリティ問題が存在す

  • Masato Kinugawa Security Blog: NoScriptのAnti-XSS機能のバイパス18個

    FirefoxのアドオンであるNoScriptに備わっているXSS防止機能の、これまでに僕が報告した、対策された迂回方法を公開します。 1. v2.3.2rc2で修正 http://vulnerabledoma.in/char_test?charset=iso-2022-jp&body=%3Cifr%1B%28Jame%20o%1B%28Jnload=aler%1B%28Jt%281%29%3E ISO-2022-JPでエンコードされたページまたは自動選択でISO-2022-JPが選択されたページで、NoScriptが反応する文字列中にISO-2022-JPで無視されるバイト列を挟むことで検出を回避できました。 2. v2.3.2rc3で修正 http://l0.cm/noscript/ 単純にイベントハンドラの検出のバグです。URL中に()が入ると弾かれるので、location.href

  • Masato Kinugawa Security Blog: ドコモのSPモードでXSSっぽい文字列を含むURLへ接続できない

    先日、ドコモが提供するスマートフォン用の回線であるSPモードを使用して普通にインターネットをしていたら接続できないページに出会いました。インターネットをしていて接続できないページがあるくらい珍しいことではないですが、接続できない状況が普通ではありませんでした。どうも特定の文字列がURLに含まれていると接続できなくなるようなのです。 例えば以下のようなURLに接続できません。 http://www.google.co.jp/search?q=%22%3E%3Cscript%3E このようになります。 いろいろな環境から接続を試みた結果は以下です。 × Android標準ブラウザからSPモードで接続 × Firefox MobileからSPモードで接続 × パソコンのFirefoxから携帯を使用してSPモードでテザリング接続 ○ Android標準ブラウザで自宅の無線LANからWi-Fi接続

  • Masato Kinugawa Security Blog: UTF-16によるContent Security Policyの迂回

    UTF-16をContent Security Policy(以下CSP)の迂回に使ってみようという記事です。ほとんどの場合で問題になりませんが場合によってはこうもできるかもしれないよね、ということを示すために書きます。真面目に読まないでください。 シンプルな迂回方法 やろうとしていることを理解しやすくするために、先にシンプルな迂回方法を示します。 CSPで選択的に外部ドメインのJavaScriptの読み込みを許可しているような場合、読み込みを許可したドメインにscriptタグのsrcとしてエラーのないように悪意のあるスクリプトを書けてしまう箇所があれば、当然XSSがあった時にCSPを迂回して攻撃することができてしまいます。 僕が攻撃しようと思ったら真っ先に狙いに行くのはJSONPのcallback関数名です。具体的に例を示すと、 CSPを導入したサイトで、外部サイトのcsp.exampl

  • Masato Kinugawa Security Blog: Googleのmetaリダイレクトに存在した問題

    Googleに存在したメールアドレスを窃取できた問題について書きます。これは2011年1月30日に報告し、報告後数日以内に修正された問題です。 こんなページがありました。 http://example.google.com/redirect?continue=http://example.google.com/xyz <meta http-equiv="refresh" content="0;url=&#39;http://example.google.com/xyz&#39;"> <script> location.replace("http://example.google.com/xyz") </script> continueというパラメータに指定されたURLをmetaタグとlocation.replace()にそれぞれ入れて、JavaScriptの有効/無効の設定に関わらずリダイ

  • 1