¿Está Chrome completamente seguro contra Reflected XSS?

19

Observo que Chrome no ejecuta scripts que son parte de la solicitud web,

http://vulnerable_site?pageTitle=<script>alert('xss')</script>

Con dichos enlaces, ya que el script es parte de la solicitud web, Chrome no ejecuta el script. ¿Eso evita todo tipo de ataques Reflected XSS con el navegador Chrome?

Editar: Ya he leído this hilo; Aunque el título parece similar, los contenidos son diferentes.

    
pregunta vikkyhacks 16.03.2014 - 16:16
fuente

6 respuestas

22

No, porque el filtro XSS solo se ve si ve el código XSS en la entrada nuevamente en el HTML generado por su servidor.

Por ejemplo, si Chrome ve que se accede a su página web con una URL que contiene lo siguiente:

?q=<script>alert("XSS!")</script>

y si el HTML devuelto por el servidor contiene esto:

<p>You have searched for <b><script>alert("XSS!")</script>

sabe que este código es probablemente el resultado de su inclusión en la solicitud y lo neutraliza.

Sin embargo, si el código no se encuentra en la solicitud, por ejemplo, si la aplicación acepta una entrada que está codificada de alguna manera, es posible que el filtro no pueda descubrir que el código es el resultado de algún código XSS incorporado en la solicitud.

Como se ve en registro de confirmación para WebKit, hasta que recientemente se bifurcó el motor de renderizado en Chrome, intentan solucionar los desvíos más comunes, donde el código XSS en la URL y el código XSS resultante en el HTML tienen un aspecto ligeramente diferente.

Si no se aplica ninguna de estas reglas para casos especiales, el XSS no se aplicará. Por ejemplo, si no están decodificando datos codificados en Base64 en la URL, si la aplicación web acepta una entrada codificada con Base64, es posible que XSS sea una aplicación web.

Un ejemplo:

?q=PHNjcmlwdD5hbGVydCgnWFNTIScpPC9zY3JpcHQ+

( PHNjcmlwdD5hbGVydCgnWFNTIScpPC9zY3JpcHQ+ es <script>alert("XSS!")</script> codificado en Base-64), si no se filtra, resultaría en una respuesta HTML como esta:

<p>You have searched for <b><script>alert("XSS!")</script>

Además, no evitará que XSS ocurra con datos que no están incrustados en el código HTML sin codificar, pero que JavaScript los trata de forma insegura.

Por ejemplo, considere una página que contiene el siguiente JavaScript:

eval(location.hash.substring(1))

Esto ejecutará cualquier código que siga al # en la URL, pero Chrome no lo elimina.

Puede ver este ejemplo en acción aquí

Otro ejemplo, que utiliza Base64

    
respondido por el user2428118 17.03.2014 - 13:16
fuente
12

La prevención de XSS no es responsabilidad del navegador, los agujeros XSS surgen debido a fallas en un sitio web, y es responsabilidad de los propietarios de sitios web prevenir dichas fallas.

Algunos navegadores han implementado intentos de mitigar los agujeros XSS y CSRF en los sitios web, pero estos son heurísticos que buscan patrones típicos de ataques. De ninguna manera están completos.

Hay infinitas formas de implementar un agujero XSS, y no hay una manera segura de distinguir entre un agujero y el comportamiento deseado. No hay forma de que un filtro de navegador pueda ser un reemplazo para los propietarios de sitios que conocen, se preocupan y tratan el problema de los agujeros XSS y CSRF.

Me pregunto si estos filtros hacen más daño que bien creando una falsa sensación de seguridad.

    
respondido por el aaaaaaaaaaaa 16.03.2014 - 20:04
fuente
2

No. Consulte este compromiso de Webkit y encuentre la palabra "derivación". Verá derivaciones de Auditor que los investigadores han encontrado durante el período de tiempo ...

    
respondido por el user36484 16.03.2014 - 22:01
fuente
2

Como se señaló en error de Chrome 118808 por un desarrollador:

  

Las omisiones del auditor de XSS no constituyen vulnerabilidades de seguridad de Chrome (por lo que este error está marcado como SecSeverity-None). Puede encontrar nuestras pautas de gravedad aquí: enlace

     

Para aclarar un poco más, el auditor de XSS es un mecanismo de defensa en profundidad para proteger a nuestros usuarios contra algunas vulnerabilidades comunes de XSS en los sitios web. Sabemos a ciencia cierta que no puede capturar todas las variantes posibles de XSS, y las que sí detectan aún deben ser reparadas en el sitio afectado. Entonces, el auditor es realmente una red de seguridad adicional para nuestros usuarios, pero no pretende ser un mecanismo de seguridad sólido.

que muestra cómo el equipo de Chrome no espera que esté completamente seguro (lo que probablemente sea imposible).

    
respondido por el Ángel 14.07.2018 - 23:03
fuente
-2

El auditor de Chrome XSS se puede omitir usando los siguientes scripts:

  1. http://vulnerable_site?pageTitle=<a href="data:text/html,your xss payload">xss

  2. http://vulnerable_site?pageTitle=<a href="data:text/html;base64,base 64 encoded format of your xss payload">xss

respondido por el Ansuman Samantaray 18.04.2016 - 21:15
fuente
-6

Chrome protege contra todos los vectores de ataque xss reflejados conocidos. Si pudieras encontrar una forma de evitar este filtro, goog te dará una recompensa. Dicho esto, el xss reflejado sigue siendo una vulnerabilidad en el sitio web

    
respondido por el Tohmaxx 16.03.2014 - 17:28
fuente

Lea otras preguntas en las etiquetas