Можно ли подделать или повторно использовать VIEWSTATE или определить, защищено ли оно от модификации?

Вопрос

Веб-приложения ASP и ASP.NET используют в формах значение, называемое VIEWSTATE. Насколько я понимаю, это используется для сохранения какого-то состояния на клиенте между запросами к веб-серверу.

Я никогда не работал с ASP или ASP.NET, и мне нужна помощь с двумя вопросами (и некоторыми подвопросами):

1) Можно ли программно подделать/создать VIEWSTATE для формы? Уточнение: может ли программа просмотреть форму и создать из нее содержимое значения VIEWSTATE в кодировке base64?

1 а) Или его всегда можно просто опустить?

1 b) Можно ли повторно использовать старое VIEWSTATE для конкретной формы в более позднем вызове той же формы, или это просто удача, если это сработает?

2) Я понял из http://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic12, что можно включить защиту, чтобы VIEWSTATE стал безопасным от спуфинг.Может ли программа обнаружить, что VIEWSTATE защищен таким образом?

2 a) Существует ли взаимно однозначное соответствие между наличием значений EVENTVALIDATION и защищенными VIEWSTATE?

Относительно 1) и 2), если да, могу ли я подсказать, как это сделать? Для 2) я думаю, что могу декодировать значение с помощью base64 и искать строку, которая всегда находится в незашифрованных VIEWSTATE. "Первый:"? Что-то другое?

Предыстория

Я сделал небольшой инструментдля обнаружения и эксплуатации так называемых уязвимостей CSRF. Я использую его для быстрого подтверждения концепций таких уязвимостей, которые я отправляю владельцам затронутых сайтов. Довольно часто я сталкиваюсь с этими формами с VIEWSTATE, и я не знаю, безопасны они или нет.

Правка 1:Несколько разъяснен вопрос 1.

Правка 2:Добавлен текст курсивом.

7
задан AnthonyWJones 19 June 2012 в 09:13
поделиться