¿Cuál es el peligro de las secuencias de comandos de sitios cruzados reflejados?
Entiendo que el XSS reflejado es peligroso, porque es posible. Pero, ¿qué ataques prácticos se pueden realizar utilizando Reflected XSS?
¿Cuál es el peligro de las secuencias de comandos de sitios cruzados reflejados?
Entiendo que el XSS reflejado es peligroso, porque es posible. Pero, ¿qué ataques prácticos se pueden realizar utilizando Reflected XSS?
Puedes hacer mucho cuando puedes insertar código en una página. Por ejemplo, usted puede
El artículo de wikipedia hace mucha justicia:
La vulnerabilidad de secuencias de comandos entre sitios no persistente (o reflejada) es con mucho el tipo más común. Estos orificios aparecen cuando los datos proporcionados por un cliente web, más comúnmente en los parámetros de consulta HTTP o en formularios HTML, son utilizados inmediatamente por los scripts del lado del servidor para generar una página de resultados para ese usuario, sin desinfectar adecuadamente la solicitud.
Debido a que los documentos HTML tienen una estructura en serie plana que combina declaraciones de control, formato y el contenido real, cualquier dato no validado suministrado por el usuario incluido en la página resultante sin la codificación HTML adecuada, puede llevar a una inyección de marcado. Un ejemplo clásico de un vector potencial es un motor de búsqueda en el sitio: si uno busca una cadena, la cadena de búsqueda normalmente se volverá a mostrar en forma literal en la página de resultados para indicar qué se buscó. Si esta respuesta no escapa o rechaza correctamente los caracteres de control HTML, se producirá una falla de secuencias de comandos entre sitios.
Un ataque reflejado normalmente se entrega a través de correo electrónico o un sitio web neutral. El cebo es una URL de apariencia inocente, que apunta a un sitio de confianza pero que contiene el vector XSS. Si el sitio de confianza es vulnerable al vector, hacer clic en el enlace puede hacer que el navegador de la víctima ejecute el script inyectado.
...
No persistente (también conocido como reflexivo) :
- Alice visita con frecuencia un sitio web en particular, que es alojado por Bob. El sitio web de Bob permite a Alice iniciar sesión con un par de nombre de usuario / contraseña y almacena datos confidenciales, como información de facturación.
- Mallory observa que el sitio web de Bob contiene una vulnerabilidad XSS reflejada.
- Mallory elabora una URL para explotar la vulnerabilidad, y le envía a Alice un correo electrónico, incitándola a hacer clic en un enlace de la URL con falsos pretextos. Esta URL apuntará al sitio web de Bob (ya sea directamente oa través de un iframe o ajax), pero contendrá el código malicioso de Mallory, que reflejará el sitio web.
- Alice visita la URL proporcionada por Mallory mientras inició sesión en el sitio web de Bob.
- El script malicioso incrustado en la URL se ejecuta en el navegador de Alice, como si viniera directamente del servidor de Bob (esta es la vulnerabilidad real de XSS). El script puede usarse para enviar la cookie de sesión de Alice a Mallory. Mallory puede usar la cookie de sesión para robar información confidencial disponible para Alicia (credenciales de autenticación, información de facturación, etc.) sin el conocimiento de Alicia.
¿Tiene alguna pregunta al respecto?
La defensa estándar de XSS trabaja contra ella; por ejemplo, desinfectar la entrada del usuario que no sea de confianza; por ejemplo, solo permítales insertar un pequeño subconjunto de HTML (de un lenguaje de marcado limitado seguro) o pasar a través de un buen desinfectante / purificador html, no use patrones inseguros en los scripts (por ejemplo, eval en javascript en la entrada del usuario), use idealmente un navegador con CSP y sandboxing, etc.
De OWASP :
Ataques XSS reflejados: los ataques reflejados son aquellos en los que el código inyectado se refleja en el servidor web, como en un mensaje de error, resultado de búsqueda o cualquier otra respuesta que incluya parte o toda la entrada enviada al servidor como parte de la solicitud. Los ataques reflejados se envían a las víctimas a través de otra ruta, como en un mensaje de correo electrónico, o en algún otro servidor web. Cuando se engaña a un usuario para que haga clic en un enlace malicioso o envíe un formulario especialmente diseñado, el código inyectado viaja al servidor web vulnerable, que refleja el ataque al navegador del usuario. El navegador ejecuta el código porque proviene de un servidor "confiable".
Lo que esto significa es que puedo poner código malicioso como parte de los parámetros de consulta (la parte de la url después del signo y el signo de interrogación. Puedo enviar un correo electrónico malicioso, usar bit.ly o similar, o combinarlo con otro ataques para lograr que realice una solicitud no deseada, que no está filtrando el XSS.
En términos de ataques, Phishing va a ser el más importante, haz que alguien confíe en mi malvado enlace. Este tipo de ataque también se puede combinar con CSRF o cualquiera de una serie de ataques, en cualquier momento y el atacante puede hacer que otro sitio ejecute su código, y usted puede ejecutar la página con javascript habilitado, va a ser malo.
Algunos enlaces
Le recomiendo que eche un vistazo a BeEF - El marco de explotación del navegador enlace Es básicamente una herramienta para mostrar los peligros de XSS. Al usar un ataque XSS reflejado o persistente, la carne se engancha en el sitio web dado, y permite al atacante controlar el navegador en la página dada. BeEF se integra con Metasploit, lo que le permite a un atacante enviar ataques de navegador, etc. al navegador del usuario. Puedes robar datos, robar sesiones, etc. También hay algunos videos decentes allí.
Cualquier cosa que BeEF pueda hacer, los atacantes también pueden hacer. XSS puede ser bastante malo.
Lea otras preguntas en las etiquetas web-application xss