質問: webアプリケーションの脆弱性について 最近csrf攻撃についていろいろ勉強しています。 例として、mixiでの「ぼくはまちちゃん事件」というのが出てきましたが いまいちこの手法の仕組みが理解できません。 誰かの日記に一度、踏みやすそうなリンクを張っておいて、リンク先のページに 埋め込まれたタイトル情報と日記の中身の情報を含んだフォームを勝手にサブミットしてしまう。 という事かな。と思ったのですが、mixiの場合って「以下の内容で書き込んでもよろしいですか?」みたいなページとかが表示されるかと思います。 そういったページというのはどうなっていたのでしょうか。 というか、攻撃者が用意したダミーのリンク内ではどのようなページが表示されていたのでしょうか。 ご存知の方がいらっしゃいましたらご教授していただけないでしょうか。
回答: こんにちは! 「フォームを勝手にサブミットしてしまう」 その認識でだいたいあってます!たぶん! そのmixiの例だと、 入力画面 → (送信1) → 確認画面 → (送信2) → 完了 ってなるわけですが、 いくら確認画面が間にあったところで、 (送信2)の部分を「勝手にサブミット」しちゃえばいいわけです。 ※ただし今のmixiや、ちゃんとしたwebサービスは送信時にトークンをつけるとかcsrf対策してるのでできません 実際の攻撃の例としては、mixiやtwitterなどの多くの人が繋がっている投稿型サイトで、 「こんにちはこんにちは!! このリンク先すごいよ! http://~」 のような書き込みをしておき、 そのリンク先でformやjavascript等で「自動的に勝手にサブミット」してしまいます。 画面には何も表示されなくてもかまいません。 そしてさらに勝手に書き込む内容を 「こんにちはこんにちは!! このリンク先すごいよ! http://~」 のようにしてしまうことで、まるでワーム型ウイルスのように、 友達の繋がりを通じて連鎖的に広がります。 他には、getリクエストで何らかの処理をされてしまうwebアプリに対して imgタグやiframeなどで、誰かに「勝手にリクエストを送信させてしまう」 なんてのもcsrfの事例のひとつです。 こわいですね。 このあたりのことを漫画で解説しているサイトもあるので、 いちどご覧になってみてはいかがでしょうか! http://gihyo.jp/dev/serial/01/hamachiya2/0001 絵がとってもかわいいですよ! あ、あと動画もありました。 http://www.youtube.com/watch?v=tcxo6v8bs1g