質問
ASP および ASP.NET Web アプリケーションは、フォームで VIEWSTATE という値を使用します。私が理解していることから、これは、Web サーバーへのリクエスト間でクライアント上のある種の状態を保持するために使用されます。
私は ASP または ASP.NET を使用したことがなく、次の 2 つの質問 (およびいくつかのサブ質問) について助けが必要です。
1) フォームの VIEWSTATE をプログラムでスプーフィング/構築することは可能ですか? 明確化: プログラムはフォームを見て、そこから base64 でエンコードされた VIEWSTATE 値の内容を構築できますか?
1 a) それとも、常にそのままにしておくことができますか?
1 b) 特定のフォームの古い VIEWSTATE を、後で同じフォームを呼び出すときに再利用できますか?それともうまくいった場合は運がいいだけでしょうか?
2) http://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic12から、VIEWSTATE がスプーフィングから保護されるようにセキュリティを有効にできることを収集します。VIEWSTATE がそのような方法で保護されていることをプログラムが検出することは可能ですか?
2 a) EVENTVALIDATION 値の発生と安全な VIEWSTATE の間に 1 対 1 のマッピングがありますか?
1) と 2) について、もしそうなら、どうやってそれを行うかについてのヒントをいただけますか? 2) については、値を base64 でデコードし、暗号化されていない VIEWSTATE で常に検出される文字列を検索できると考えています。"初め:"?他の何か?
バックグラウンド
いわゆる CSRF 脆弱性を検出して悪用するための小さなツールを作成しました。私はそれを使用して、影響を受けるサイトの所有者に送信するそのような脆弱性の概念の証明を迅速に作成します。これらのフォームに VIEWSTATE が含まれていることがよくありますが、これらが安全かどうかはわかりません。
編集 1:質問 1 をいくらか明確にしました。
編集 2:イタリック体のテキストを追加しました。