CSRF(クロス・サイト・リクエスト・フォージェリ)

久しぶりです(ω)ノ
最近、ネタを何にしようか迷ってたんですけど
CSRFにしようと思います。
てかMHP3rd今日やり込みすぎて疲れた・・・(Д

まぁ説明いきますよ!
d0210354_0344297.jpg


とくに掲示板などで、書き込む時になんでわざわざ数字なんて入力するんだよ!って
思ってた人もいると思いますが、ちゃんと意味があります。

それは、CSRF(クロス・サイト・リクエスト・フォージェリ)の脆弱性の対策です。

CSRFとは、相手に意図しない動作を無理やりさせることができてしまう脆弱性です。
例えば、仕掛けがしてあるサイトに入っただけで、アクセスした人は
脆弱性のあるターゲットサイトへと知らないうちに書き込みさせられてしまうのです。
この何が問題かと言うと、昔実際にあったらしいんですけど、、、
そのCSRFの脆弱性があった掲示板サイトに殺人予告が書き込まれました。
しかも何回もです。
IPアドレスを調べてみたらみんな違う人だったらしいです。
詳しく調べた結果、CSRFの脆弱性があることが判明!
悪意のユーザーが仕掛けた罠に掛かり、みんな書き込みをさせられたのです。
このようにIPアドレスで問題になるケースもあるのです。

3~4年前にもmixiでもありました。
別に殺人予告とかではないんですけど、『ぼくはまちちゃん事件』
って呼ばれていると思います。

興味のある方は調べばたくさん出てきますよ(ω//

攻撃方法で簡単な例を言ってみれば・・・
※Wiki参照↓↓
d0210354_0452614.jpg


この、下のclickme.htmlは、実際にアクセスさせるwebページです。
ソースはその枠の中の通りです。

<iframe width="1" height="1" src="attack.html"></iframe>
このインラインフレーム要素で、attack.htmlのwebページを読み込ませているのですが、
縦横の大きさを最小にすることで、ほぼ攻撃ページを見えなくすることができます。

d0210354_115528.jpg


そして、attack.htmの、実際に攻撃ソースが書かれている方は、
攻撃目標ページの書き込みフォームをそのまま抜き取ります。
そしてclickmeのインラインフレームにセットして、送信ボタンはJacaScriptで
読み込まれた時に無理矢理押されるようにしてあります。

d0210354_123327.jpg


ちなみに
<input type="hidden" name="title" value="攻撃者が指定した題名">
このtype="hidden"というのは隠しフィールドと言い、
実際には表示されません、さらに気づかれにくくするための偽装だと思います。
type="hidden"は逆にCSRFの対策で、不正な操作をされないようにと使われることが多いです。

上のようなページが完成したら、攻撃ページに誘導するような書き込みをしとけば
いいってわけです!

まぁ今日はこのくらいにしておきます。。。

では(ω)ノシ
[PR]

by r-skull | 2010-12-12 01:24 | 攻撃・脆弱性