Недавно я использовал сканер уязвимостей для одного из моих веб-сайтов, основанных на веб-формах asp.net, который использует Framework 4.5.
Веб-сайт был помечен для нескольких уязвимостей, и большинство из них связано с межсайтовым скриптингом XSS. один такой пример ниже
Пример 1:
Группа предупреждений: Межсайтовый скриптинг
Подробности : URI был установлен на 'onmouseover='8HLr(9179)'bad='
Ввод
отражается внутри параметра тега между одинарными кавычками.
- GET //? 'Onmouseover =' 8HLr (9179) 'bad =' HTTP / 1.1
- Реферер: https://example.com/ Подключение: keep-alive
- Принимаем: /
- Accept-Encoding: gzip, deflate Хост: example.com
- User-Agent: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.21
(KHTML, как Gecko) Chrome / 41.0.2228.0 Safari / 537.21
Пример 2:
Группа предупреждений: Межсайтовый скриптинг
Подробности : вход POST в кодировке URL ctl00 $ txtSearch был установлен в значение «onmouseover = 8qGf (9096)»
Входные данные отражаются внутри параметра тега в одинарных кавычках.
- GET / search / the'onmouseover = 8qGf (9096) 'HTTP / 1.1
- Реферер: https://example.com/ Подключение: keep-alive
- Примите: /
- Accept-Encoding: gzip, deflate Хост: domain.com
- Пользователь-агент: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.21
(KHTML, как Gecko) Chrome / 41.0.2228.0 Safari / 537.21
Пример 3:
Группа предупреждений: Межсайтовый скриптинг
Подробности : для URI установлено значение 'onmouseover =' gPIH (9411) 'bad ='
Входные данные отражаются внутри параметра тега между одинарными кавычками.
- / blog / 1234 / title-of-the-blog? 'Onmouseover =' gPIH (9411) 'bad =' HTTP / 1.1
- Referer: https://example.com/ Соединение: keep-alive
- Авторизация: базовая YW5vbnltb3VzOmFub255bW91cw ==
- Примите: /
- Accept-Encoding: gzip, deflate Хост: domain.com
- Пользователь-агент: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.21
(KHTML, как Gecko) Chrome / 41.0.2228.0 Safari / 537.21
Тестирование белых на локальном хосте. Я ввел XXS в мой локальный URL http://localhost:54923/%3Cscript%3Ealert('hello!');%3C/script%3E
и это сгенерировало ошибку на странице
Потенциально опасное значение Request.Path было обнаружено из
клиент (<). </p>
Означает ли это, что моя страница не уязвима для XSS, и после дальнейшего изучения XSS в веб-форме asp.net я обнаружил несколько статей, в которых рассказывается о том, как вводится информация.
один пример, который показывает, что xss можно легко сделать, установив следующее в файле web.config
<httpRuntime requestValidationMode="2.0" />
<httpRuntime requestValidationMode="4.5" />
Источник /: https://code.tutsplus.com/tutorials/preventing-xss-in-aspnet--cms-21801
Достаточно ли установить requestValidationMode
для предотвращения XSS-атак, как упомянуто выше, или нам нужно сделать больше.