Según informa Imperva en su blog, un bug en IE puede permitir a un atacante realizar ataques de tipo XSS no persistentes (reflected).
El fallo consiste fundamentalmente en que el navegador de Microsoft no codifica correctamente las dobles comillas (") dentro de una dirección o URI de una query. Algunos sitios web pueden asumir que la URI de la solicitud está correctamente codificada por el navegador e incrustada "tal cual" en la respuesta HTML. Sin embargo, si las comillas dobles no están debidamente codificadas por el IE, se podría realizar un ataque XSS que afectara a los usuarios de IE. Este comportamiento no cumple el RFC 3986 que si implementan otros navegadores como Chrome o Firefox.
Veamoslo con un ejemplo. Si se escribe la siguiente URI en la barra de direcciones del Internet Explorer:
http://example.com/Sea"rch.asp?q"="b"
la petición será traducida correctamente:
GET /Sea%22rch.asp?q"="b"
Pero ahora supongamos que el sitio web tiene embebida la petición en el código fuente. Por ej. para cargar una URL como parámetro para mostrar una imágen:
out.println(" <1mg src=\"http://www.example.com/pic.asp?ref=" + request.getRequestURL() + "?" + request.getQueryString() +"\">");
Imaginemos que un atacante crea un XSS reflejado para convencer a la víctima a seguir el siguiente enlace:
hxxp://vulnerablesite.com/vulnerablepage.jsp?"onmouseover=alert(1)//
Entonces, en IE, la víctima tendrá el siguiente HTML:
<1mg src="http://www.example.com/pic.asp?ref=hxxp://vulnerablesite.com/vulnerablepage.jsp?"onmouseover=alert(1)//">
y el javascript se ejecutará en su máquina.
Aunque Microsoft ha respondido que no considera este fallo una vulnerabilidad y que NO se tratará en una actualización de seguridad, Imperva insiste que actualmente existen numerosas aplicaciones web vulnerables en Internet por lo que la amenaza es real y no teórica, se están reportando problemas de XSS sólo para usuarios de IE y la vulnerabilidad se está empezando a notar en sitios como XSSed.com.
El fallo consiste fundamentalmente en que el navegador de Microsoft no codifica correctamente las dobles comillas (") dentro de una dirección o URI de una query. Algunos sitios web pueden asumir que la URI de la solicitud está correctamente codificada por el navegador e incrustada "tal cual" en la respuesta HTML. Sin embargo, si las comillas dobles no están debidamente codificadas por el IE, se podría realizar un ataque XSS que afectara a los usuarios de IE. Este comportamiento no cumple el RFC 3986 que si implementan otros navegadores como Chrome o Firefox.
Veamoslo con un ejemplo. Si se escribe la siguiente URI en la barra de direcciones del Internet Explorer:
http://example.com/Sea"rch.asp?q"="b"
la petición será traducida correctamente:
GET /Sea%22rch.asp?q"="b"
Pero ahora supongamos que el sitio web tiene embebida la petición en el código fuente. Por ej. para cargar una URL como parámetro para mostrar una imágen:
out.println(" <1mg src=\"http://www.example.com/pic.asp?ref=" + request.getRequestURL() + "?" + request.getQueryString() +"\">");
Imaginemos que un atacante crea un XSS reflejado para convencer a la víctima a seguir el siguiente enlace:
hxxp://vulnerablesite.com/vulnerablepage.jsp?"onmouseover=alert(1)//
Entonces, en IE, la víctima tendrá el siguiente HTML:
<1mg src="http://www.example.com/pic.asp?ref=hxxp://vulnerablesite.com/vulnerablepage.jsp?"onmouseover=alert(1)//">
y el javascript se ejecutará en su máquina.
Aunque Microsoft ha respondido que no considera este fallo una vulnerabilidad y que NO se tratará en una actualización de seguridad, Imperva insiste que actualmente existen numerosas aplicaciones web vulnerables en Internet por lo que la amenaza es real y no teórica, se están reportando problemas de XSS sólo para usuarios de IE y la vulnerabilidad se está empezando a notar en sitios como XSSed.com.
Comentarios
Publicar un comentario