Мы создаем сообщение, подобное следующему, которое является SignInRequestMessage
var message = Microsoft.IdentityModel.Protocols.WSFederation.WSFederationMessage.CreateFromUri(Request.Url);
Он имеет следующие свойства:
Microsoft.IdentityModel.Protocols.WSFederation.SignInRequestMessage
Action: "wsignin1.0"
message.Parameters
Count = 2
[0]: {[wa, wsignin1.0]}
[1]: {[wtrealm, javascript:alert(/test/)]}
Обратите внимание, что второй параметр в сообщении — это javascript, и когда adfs перенаправляет на него, мы фактически видим предупреждение.
Это происходит, когда пользователь вошел в систему, и в рамках того же сеанса мы пытаемся ввести URL-адрес, как показано ниже.
https://localhost/StarterSTSLib/Login.aspx?wa=wsignin1.0&wtrealm=javascript:alert(/test/)
Есть ли у кого-нибудь предложения о том, как предотвратить wtrealm
из-за этой уязвимости межсайтового скриптинга?