CSSXSSを改良した?手法でmixiのpost_keyを抜き取るデモを作りました
IDを抜き取る方法が思いつかなかったので、「はまちちゃん」の書き込みの二年来の再来とはいきませんが、セキュリティーホールだと思うので、早めに書いておきます。(修正済みです)
実証コード
http://k75.s321.xrea.com/cssxss/mixi.html
パッチ済みのIE6でmixiにログインしていた場合、post_keyの取得を確認できると思います。勘違いだったらすみません。その際、僕のmixiのあしあとに残るのでその点のみ注意してください。
手法
CSSの読み込み
いわゆるCSSXSSと同じようにlinkを使って、ファイルを読み込みます。旧来の手法では中括弧があることでCSSと誤認識させ、cssTextで取得しましたが、今回は文中に「}selector{property:」という文字列を埋め込んで、selectorに該当する要素のcurrentStyle.propertyを参照することで外部ドメインのテキストの一部(複数その文字列が入った場合、一番最後のプロパティーだけとなりますから)を参照しました。propertyにcolorなどはどうも勝手に正規化されるようなので、多くのプロパティーは使えませんが、確認している限り、font-familyとquotesはそのまま以降の文字列を認識するようです。
今回はmixiのニックネームに「}a{quotes:」と設定することにより、メッセージ入力画面からpost_keyを取得することができました。
脆弱性通報
さっとググってみましたが、どこにすればいいのかわかりませんでした。あとで暇ができたら、電話するなりして聞いてみようと思います。