凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 46964
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

アスタリスクで隠されたパスワードを確認する方法 という記事が上がっています。

以下のJavaScriptをアドレスバーに入力すると、次のようなダイアログ内にパスワードが表示されます。

該当blogでは「便利」といった感想が書かれていますが、これは重大なセキュリティホールです。

例えば、以下のような、コードを書くと分かるのですが、フレームの外側から、フレームの内側に表示されたHTMLの passwordがJavaScriptによって参照することができるのです。

<!-- 外側のページ -->
<html>
<head>
<script>
function aa() {
var f = window.frames;
var inputTag = f[0].document.getElementById("innerTarget");
alert(inputTag.value);
}
</script>
</head>
<body>
<input type="button" value="CHECK" onclick="aa()"/>
<iframe src="pass.html" id="wrap" />
</body>
</html>

<!-- 内側のページ pass.html -->
<html>
<body>
<input type="password" id="innerTarget"/>
</body>
</html>

上記ソースではiframeを用いています。つまり、画面全体をiframeとした入れ子構造を、 それと悟らせずに表示させることでHTMLのあらゆるパスワード欄に入力される文字列を引き抜くことができます。

これは例えSSLで通信していても防ぐことができません。複合化された後のHTMLからパスワードを読み取っているためです。

現在使用しているブラウザがこの問題に対処できているかを確認するには、以下のコードをコピーし、 ブラウザのアドレスバーに入力して見てください。

javascript:alert('%32%30%30%38%2f%34%2f%31%20%3a%2d%50');

これは、クロスドメインによる制約によって実際には機能しません。 同一のドメインではフレームの内外でJavaScriptによる参照を行うことができますが、 ドメインが違う場合は参照することができないため、iframeの内側に別のページを表示させてパスワードを抜くことはできません。

アドレスバーで実行されるJavaScriptは特殊で、該当ドメイン扱いで実行されるため、 どこのページでもパスワードが抜けてしまいます。

iframによる入れ子HTMLでのパスワード抜きはできませんが、離席中などに直接マシンを操作されるような場合、 このようなスクリプトでパスワードを盗み見られる可能性がありますので、相応の注意は必要です。

投稿日時 : 2008年4月1日 0:28
コメント
  • # re: *で隠されたパスワードがJavaScriptによって抜取られる
    ma2
    Posted @ 2008/04/01 0:38
    JavaScriptはよくわからんけど、4/1というタイミングでこんなヘビーな・・・釣られたorz
  • # re: *で隠されたパスワードがJavaScriptによって抜取られる
    かつのり
    Posted @ 2008/04/01 9:49
    うわ、つられた
  • # re: *で隠されたパスワードがJavaScriptによって抜取られる
    melt
    Posted @ 2008/04/01 10:11
    * の使い方がうますぎるw
  • # re: *で隠されたパスワードがJavaScriptによって抜取られる
    ながせ
    Posted @ 2008/04/01 11:03
    なんという…。
  • # re: *で隠されたパスワードがJavaScriptによって抜取られる
    Mr.T
    Posted @ 2008/04/01 14:46
    これ、前にMixiで盛り上がったやつですね(^^;
  • # re: *で隠されたパスワードがJavaScriptによって抜取られる
    凪瀬
    Posted @ 2008/04/01 14:56
    クロスドメイン部分以外は全部本物。
    クロスドメイン部分のサンドボックスに誤りがあったら本当にヤバいことになりますね。
    自分がすわ重大セキュリティホールか!とひっかかっただけに、くやしさをお裾分け。
  • # エイプリルフールの種明かし
    凪瀬 Blog
    Posted @ 2008/04/02 13:05
    エイプリルフールの種明かし
タイトル
名前
Url
コメント