iモード専用サイトのhtmlソースの閲覧方法



iモードブラウザ2.0のJavaScriptを調査・研究する過程で、iモード専用サイトのhtmlソースを閲覧する方法を発見しました。
今回発見した方法を用いれば、「ドコモ・ゲートウェイ以外からのアクセスを禁止している」、「サーチエンジンのクロールを禁止している」、「XSS脆弱性が存在しない」の三つの条件を満たしているiモード専用サイトでも、htmlソースを閲覧することができます。

しかし、htmlソースを閲覧するためには、そのiモード専用サイトが別の二つの条件を満たしている必要があります。

htmlソースが閲覧可能なiモード専用サイトの条件

  • デフォルトホストで運用されている。(ヴァーチャルホストではない)
  • iモードブラウザ2.0のJavaScriptからのアクセスを禁止していない。

iモード専用サイトのhtmlソースの閲覧方法

  1. iモードブラウザ2.0のJavaScriptで、htmlソース閲覧スクリプト(js_vulnerability)を作成する。
  2. そのスクリプトを、自分のDNS管理下にあるドメインで運用しているサイト(mydomain.com)にアップロードする。
  3. iモードブラウザ2.0で、mydomain.comのhtmlソース閲覧スクリプトにアクセスし、それを画面メモをする。
  4. htmlソースを閲覧したいiモード専用サイト(targetdomain.com)のIPアドレス(aaa.bbb.ccc.ddd)を調べる。
  5. mydomain.comのIPアドレスを、aaa.bbb.ccc.dddに変更する。
  6. 上述のhtmlソース閲覧スクリプトを、画面メモから呼び出す。
  7. htmlソース閲覧スクリプトの「target url」に、targetdomain.comサイト内の任意のurlを入力して、「view」を押す。
  8. htmlソース閲覧スクリプトの「html source」テキストエリアに、iモード専用サイト(targetdomain.com)内の任意ページのhtmlソースが表示される。

今回発見した方法は、iモードブラウザ2.0のJavaScriptのクロスドメイン通信制限が、ホスト名ベースであることを利用して、クロスドメイン通信制限を突破しています。
なお、iモードアプリやiモードFlashでも同様なことが可能であると思います。

そして、今回の発見によって、htmlソースが見えないことを前提としてiモード専用サイトを作成することが非常に危険であるということを、改めて再認識しました。

追記:
これまで、mpw.jpもデフォルトホストで運用していましたが、ヴァーチャルホストでの運用に変更しました。

コメント / トラックバック14件

  1. 徳丸浩 より:

    これはすごいですね。一種のDNS Rebindingだと思います。
    HTMLソースが読めるだけだとまだよいのですが、Same Origin Policyが破られるというのは大きな問題ですので、脆弱性として届け出た方がよいのではありませんか?

  2. mpw.jp管理人 より:

    セキュリティ関係は不勉強なもので、何処に何を届け出れば良いのかが、よく分からないものでして・・・
    ただ、毎日、色々な携帯電話関係の会社から、当Blogへのアクセスがありますので、これが重大な問題であるのであれば、適切な対処・対応がなされるかと思っております。

  3. […] This post was mentioned on Twitter by tsutomura, miniryo. miniryo said: でっすよねー今後スマフォン文化も広がるだろうし。 "htmlソースが見えないことを前提としてiモード専用サイトを作成すること […]

  4. アーサー より:

    公式サイトの課金直前ページのソースは見られるとまずいのでは??

  5. 徳丸浩 より:

    リプライありがとうございます。
    最初のコメントから色々考えたのですが、DNS RebindingはPCブラウザでも完全には対策されてない問題ですので、ケータイブラウザの脆弱性として届け出ても、有効な対策をすぐにとるのは難しそうです。サイト側の対策の方が効果的でしょうね。

  6. 【対策編】iモード専用サイトのhtmlソースの閲覧方法

    iモード専用サイトのhtmlソースの閲覧方法 (mpw.jp管理人のBlog)という記事が出ていいました。iモードブラウザ2.0のJavaScriptを調査・研究する過程で、iモード専用サイトのhtmlソースを閲覧す…

  7. doumae より:

    trackbackの送信に失敗したかな?こんなの書きました。

    【対策編】iモード専用サイトのhtmlソースの閲覧方法 – ぱらめでぃうす http://parame.mwj.jp/blog/0305

  8. […] (1)iモード専用サイトのhtmlソースの閲覧方法 « mpw.jp管理人のBlog 今回発見した方法は、iモードブラウザ2.0のJavaScriptのクロスドメイン通信制限が、ホスト名ベースであることを利用し […]

  9. yamada より:

    こんにちは。
    これは自宅サーバーを持ってないとできないのでしょうか?
    私はhttp://value-domain.com/をドメインを取得し、http://xrea.com/でサーバーを運営しています。
    これでもできるでしょうか?
    >5.mydomain.comのIPアドレスを、aaa.bbb.ccc.dddに変更する。

    これがどうしたらよいかわかりません。
    どうすればいいのでしょうか?

  10. 山だ より:

    そもそも、携帯ブラウザにはソース表示機能が付いてないのはなんでなんですか!?
    付けてはダメなんですか?

  11. mpw.jp管理人 より:

    携帯電話サイトのセキュリティモデルが、htmlソースの閲覧不可を前提として組み立てられているためだと思います。

  12. やまだ より:

    >>9
    はどうすればいいのでしょうか?

  13. mpw.jp管理人 より:

    分かりませんので、ご使用されてるホスティングの運営会社にお問い合わせください。

  14. […] iモード専用サイトのhtmlソースの閲覧方法 […]

コメントをどうぞ