Togetter/min.tを安心してお使い頂くためのガイドラインを公開しました。
2012年9月16日

ITmediaのアンケートにCSRF脆弱性

ITmediaの記事「「Wii U」の価格、高い? 安い?」で行われたアンケートがCSRF攻撃を受け異常な結果に(対策済み) http://gadget.itmedia.co.jp/gg/articles/1209/13/news099.html 対策済みとのことですが、根本的な対策(ワンタイムトークンetc)ではなく、受け付けるリファラを記事URLのみにしただけの模様。
9

対策前に起きていたことの概要(画像)
http://f.hatena.ne.jp/mirai-iro/20120916223950

mirai-iro @mirai_iro

ITMediaのアンケートにCSRF脆弱性

2012-09-14 14:32:10
mirai-iro @mirai_iro

http://t.co/XVzyHMh3 (1)CSRF脆弱性が存在(リファラのみでチェック) (2)一部の2ch専用ブラウザがITmediaの画像リファラ規制を回避するためにリファラ送出する設定になっている その結果、該当ブラウザで偽装URLを画像プレビューすると投票される

2012-09-14 15:35:34
mirai-iro @mirai_iro

投票ボタンを押すと http://t.co/bgq6VFpn(アンケートごとの固有値)&a=(回答)&time=(現在時刻) をscriptタグの生成で読みこむようになっている。リファラを送出しないと「リクエスト元が正しくありません。」と返ってくる。(たぶん投票されていない)

2012-09-14 15:38:08
mirai-iro @mirai_iro

リファラが必要なので単にURL踏ませるだけじゃ攻撃成功しない。そこで攻撃者は何をしたかというと、末尾に "&0.jpg" という無視されるパラメータをつけて、ブラウザがURLを画像と誤認するようにした http://t.co/duYQKxPB

2012-09-14 15:40:34
mirai-iro @mirai_iro

ITmediaの画像はリファラがないと見れないようになっているので( http://t.co/Jj8N7w6L )、2ch専用ブラウザの一部には、ITmediaの画像URLに対してリファラを送出してプレビュー表示させるものがある( http://t.co/aWJkHQt2 )

2012-09-14 15:43:26
mirai-iro @mirai_iro

ということで、さきほどの攻撃URLが書かれたスレッドを、画像をリファラ送出してプレビュー表示する2ch専用ブラウザで開くと、意図せず投票されてしまうというわけ。

2012-09-14 15:46:40
mirai-iro @mirai_iro

そこから先、工作されたアンケート結果をもとにはちま刃みたいなネガキャンブログがネガキャン記事を書いて、Twitterで拡散されるといういつもの流れは本件に関係ないけど、エサを与えたITmediaの担当者ははらをきってしぬべきである

2012-09-14 15:50:03
mirai-iro @mirai_iro

あらら…… 「不正な投票が行われていたことが判明したため、対応が完了するまで投票を一時中止いたします。」 http://t.co/XVzyHMh3

2012-09-14 16:26:00
mirai-iro @mirai_iro

アンケート再開してたけど投票の動作が全く変わってないので根本的な対策になってない気が……

2012-09-14 21:18:40
mirai-iro @mirai_iro

あ リファラが記事のURL以外だと投票受け付け無くなってるのか、根本的な対策にはなってない気がするけど、これで2chブラウザの画像プレビューから投票されることはなくなったか

2012-09-14 21:57:00

コメント

🌱🌸🌹🌻こくとう🌷🌼🌸🌱 @Jean_Coc_Teau 2012年9月16日
専ブラ狙いのCSRFか。今まで考えたこともなかったけどわりと知られた手口なのかな?っていうか何でGETリクエスト受け付けてたんだろう。それが必ずしも根本対策になるわけではないけど・・・。
0
Ka-Ka @ka_ka_xyz 2012年9月17日
これまでのコメントについて訂正。ChromeもFireFoxも(現状だとリファラエラーとなるものの)通る。徹夜明けだとどうも駄目だな。寝よう。
0
Ka-Ka @ka_ka_xyz 2012年9月17日
間違った推測を延々と書いていたので、コメント消します。すいません。
0
電波猫 @dempacat 2012年9月17日
GETじゃなくPOSTにするのが普通やないのか……
0