Примеры уязвимостей XSS, которые получают через ASP.NET 4 <%:%> или кодировку Razor, но попадают в AntiXSS

Я ищу пример уязвимости XSS, которая была бы остановлена ​​просто с помощью AntiXSS Encoder 4.1 Beta в качестве кодировщика времени выполнения (настройка в system.web/httpRuntime). Я бы предпочел что-то, что не требует каких-либо явных вызовов функций AntiXss, таких как

@AntiXss.JavaScriptEncode(ViewBag.UserName)

Я думаю что-то, что попадет в черный список ASP.NET, но не сделает его через белый список AntiXSS, может быть, что-то делать с альтернативными наборами символов или кодировкой?

Я тестировал уязвимости UTF-7, но не вижу никаких проблем, влияющих на современные браузеры.

Ответ 1

Нет. Ну, это не совсем так, они не работают в современных браузерах.

Причина, по которой SDL требует, заключается в том, что использование безопасного списка по своей сути более безопасно, поэтому, если вдруг кто-то обнаружит проблематичный символ, он может быть уже закодирован (в зависимости от настраиваемых списков безопасности).

Ответ 2

hmm... Я не следую - antixss требует явных вызовов, если вы не говорите об использовании функции .net 4s для указания вашего собственного кодировщика и, в свою очередь, вызываете его? В этом случае на данный момент ничего не известно, о чем я знаю. Поскольку AntiXss работает с белым списком, проблем не должно быть, поскольку кодируются все, кроме нескольких символов.

fyi - локально я могу заставить utf-7 работать нормально:

<HEAD><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"> </HEAD>+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-