Ha pasado bastante tiempo desde que he jugado con las vulnerabilidades de secuencias de comandos entre sitios, pero hoy me encontré con un sitio web que pedía una vulnerabilidad básica de XSS.
Así que obedientemente escribí:
http://example.com?query=<script>alert('hey!')</script>
Y quedé bastante sorprendido cuando yo no me encontré con un cuadro de alerta que mostraba el mensaje '¡hey!'.
Verifiqué la fuente y pude ver que el código se estaba inyectando claramente y cuando probé algo más simple como:
http://example.com?query=<h1>hey!</h1>
Se inyectó el HTML como se esperaba.
Esto es cuando revisé mi registro de errores y vi este mensaje (en Chrome):
Se negó a ejecutar un script de JavaScript. Código fuente del script encontrado dentro de la solicitud
Después de un poco de investigación, descubrí que esta es una característica llamada " Protección reflectiva XSS "que se introdujo en webkit. Si el código se ve tanto en la consulta como en el cuerpo, no se ejecutará.
Entonces, mi pregunta: cuando he jugado con los scripts entre sitios en el pasado, es básicamente como lo he hecho. ¿Esto elimina efectivamente una gran cantidad de ataques XSS o solo los primitivos?