cross site scripting attack tutorial with examples
Una guía completa para el ataque Cross Site Scripting (XSS), cómo prevenirlo y pruebas XSS.
Cross Site Scripting (XSS) es uno de los ataques más populares y vulnerables que conocen todos los probadores avanzados. Se considera uno de los ataques más riesgosos para las aplicaciones web y también puede traer consecuencias perjudiciales.
XSS a menudo se compara con ataques similares del lado del cliente, ya que los lenguajes del lado del cliente se utilizan principalmente durante este ataque. Sin embargo, el ataque XSS se considera más riesgoso, debido a su capacidad para dañar tecnologías incluso menos vulnerables.
En este tutorial de ataque XSS, le daremos una descripción completa de sus tipos, herramientas y medidas preventivas con ejemplos perfectos en términos simples para su fácil comprensión.
Lo que vas a aprender:
- Introducción a XSS Attack
- ¿Cómo se realiza XSS?
- Tipos de ataques de secuencias de comandos entre sitios
- ¿Cómo probar contra XSS?
- Herramientas de prueba XSS
- Comparación con otros ataques
- Maneras de prevenir XSS
- Prevención según tecnologías
- Hojas de trucos XSS
- Conclusión
- Lectura recomendada
Introducción a XSS Attack
El ataque Cross Site Scripting es una inyección de código malicioso, que se ejecutará en el navegador de la víctima. La secuencia de comandos maliciosa se puede guardar en el servidor web y ejecutar cada vez que el usuario llama a la funcionalidad adecuada. También se puede realizar con los otros métodos, sin ningún script guardado en el servidor web.
El objetivo principal de este ataque es robar los datos de identidad del otro usuario: cookies, tokens de sesión y otra información. En la mayoría de los casos, este ataque se utiliza para robar las cookies de la otra persona. Como sabemos, las cookies nos ayudan a iniciar sesión automáticamente. Por lo tanto, con las cookies robadas, podemos iniciar sesión con las otras identidades. Y esta es una de las razones por las que este ataque es considerado como uno de los más riesgosos.
El ataque XSS se está realizando en el lado del cliente. Se puede realizar con diferentes lenguajes de programación del lado del cliente. Sin embargo, la mayoría de las veces este ataque se realiza con JavaScript y HTML.
Lectura recomendada=> Tutorial de inyección HTML
¿Cómo se realiza XSS?
El ataque Cross Site Scripting significa enviar e inyectar código o script malicioso. El código malicioso generalmente se escribe con lenguajes de programación del lado del cliente como Javascript, HTML, VBScript , Flash, etc. Sin embargo, Javascript y HTML se utilizan principalmente para realizar este ataque.
Este ataque se puede realizar de diferentes formas. Dependiendo del tipo de ataque XSS, el script malicioso puede reflejarse en el navegador de la víctima o almacenarse en la base de datos y ejecutarse cada vez que el usuario llama a la función apropiada.
La razón principal de este ataque es la validación de entrada inadecuada del usuario, donde la entrada maliciosa puede entrar en la salida. Un usuario malintencionado puede ingresar un script, que se inyectará en el código del sitio web. Entonces, el navegador no puede saber si el código ejecutado es malicioso o no.
Por lo tanto, se está ejecutando un script malicioso en el navegador de la víctima o se muestra a los usuarios cualquier formulario falso. Hay varias formas en las que puede ocurrir un ataque XSS.
Las formas principales de Cross Site Scripting son las siguientes:
- Cross Site Scripting puede ocurrir en el script malicioso ejecutado en el lado del cliente.
- Página o formulario falso que se muestra al usuario (donde la víctima escribe credenciales o hace clic en un enlace malicioso).
- En los sitios web con publicidad mostrada.
- Correos electrónicos maliciosos enviados a la víctima.
Este ataque ocurre cuando el usuario malintencionado encuentra las partes vulnerables del sitio web y las envía como entrada malintencionada apropiada. Se inyecta una secuencia de comandos maliciosa en el código y luego se envía como salida al usuario final.
Analicemos un ejemplo simple: Considere que tenemos un sitio web con un campo de búsqueda.
Si el campo de búsqueda es vulnerable, cuando el usuario ingresa cualquier script, se ejecutará.
Considere, un usuario ingresa un script muy simple como se muestra a continuación:
Luego, después de hacer clic en el 'Buscar' , se ejecutará el script introducido.
Como vemos en el Ejemplo ,se ejecuta el script escrito en el campo de búsqueda. Esto solo muestra la vulnerabilidad del ataque XSS. Sin embargo, también se puede escribir un script más dañino.
Muchos probadores mezclan el ataque Cross Site Scripting con Inyección de JavaScript , que también se realiza en el lado del cliente. En ambos se inyecta el script malicioso de los ataques. Sin embargo, en el caso de ataque XSS, las etiquetas no son necesarias para ejecutar el script.
Por ejemplo :
|_+_|Además, puede ser un script ejecutado en el otro evento.
cuál es el mejor descargador de videos de youtube
Por ejemplo:Al pasar el mouse.
|_+_|Analicemos otro ejemplo:Considere, tenemos una página, donde se muestra la última reseña del libro en el sitio web.
El código de esta página se verá como se muestra a continuación:
|_+_|Este código cambiará el escape HTML para toda la aplicación.
Si desea cambiar el escape HTML para los formularios de la página correspondiente, el código debe escribirse de la siguiente manera:
Hay muchos filtros XSS listos en forma de archivo .jar. Recuerdo que ese archivo .jar debe agregarse a su proyecto y solo entonces se pueden usar sus bibliotecas. Uno de esos filtros XSS es xssflt.jar, que es un filtro de servlet. Este archivo .jar se puede descargar fácilmente de Internet y agregar a su proyecto.
Este filtro verifica cada solicitud que se envía a la aplicación y la limpia de una posible inyección.
Cuando se agrega un archivo external.jar al proyecto, también debe describirse en el archivo web.xml:
|_+_|Otra posible solución es la biblioteca ESAPI. La biblioteca ESAPI es compatible con muchos lenguajes de programación. Puede encontrar bibliotecas ESAPI para lenguajes de programación Java y PHP. Es una biblioteca gratuita y de código abierto, que ayuda a controlar la seguridad de la aplicación.
Hojas de trucos XSS
Las hojas de trucos XSS pueden ser muy útiles para la prevención de secuencias de comandos entre sitios. Es una guía para los desarrolladores sobre cómo prevenir ataques XSS. Las reglas son muy útiles y no deben olvidarse durante el desarrollo. Las hojas de trucos XSS se pueden encontrar en comunidades de Internet como OWASP (The Open Web Application Security Project).
Diferentes tipos de hojas de trucos:
- Hoja de trucos para la prevención de XSS
- Hoja de referencia de DOM XSS
- Hoja de trucos sobre la evasión del filtro XSS
La pauta principal sería la hoja de trucos de prevención de XSS, ya que proporciona reglas comunes para la prevención de ataques XSS. Si siguiera las reglas de la Hoja de trucos de DOM XSS y la Hoja de trucos de evasión de filtros XSS, aún tendría que seguir la Hoja de trucos de prevención de XSS.
Como se indicó, la hoja de trucos de prevención de XSS se puede encontrar en la comunidad de OWASP. Esta hoja de trucos nos proporciona una lista de reglas que nos ayudarían a reducir los riesgos de posibles ataques XSS. No se trata solo de las reglas de codificación, sino también de las vulnerabilidades de seguridad a modo de prevención.
Algunas de las reglas incluyen:
- No se deben insertar datos que no sean de confianza.
- HTML debe escaparse antes de insertar cualquier dato que no sea de confianza.
- El atributo debe escaparse antes de insertar los datos que no son de confianza, etc.
Por lo tanto, Cheat Sheet puede ser muy útil para prevenir este tipo de ataques.
Conclusión
Durante las pruebas, es muy recomendable evaluar los riesgos que conllevan posibles ataques XSS. El ataque XSS puede afectar las aplicaciones web, que también parecen ser seguras.
Se considera uno de los ataques más dañinos y riesgosos. Por tanto, no debemos olvidar este tipo de pruebas. Al realizar pruebas contra XSS, es importante tener un buen conocimiento sobre este ataque. Y esta es la base para analizar correctamente los resultados de las pruebas y elegir las herramientas de prueba adecuadas.
¿Es usted un evaluador que se ha ocupado de ataques XSS de secuencias de comandos entre sitios? ¿Tiene datos interesantes sobre los ataques XSS que también ayudarían a nuestros lectores? ¡¡No dudes en compartir tus experiencias con nosotros en la sección de comentarios a continuación !!
Lectura recomendada
- Tutoriales detallados de Eclipse para principiantes
- Tutorial de inyección de HTML: tipos y prevención con ejemplos
- Tutorial de pruebas de inyección de SQL (ejemplo y prevención de un ataque de inyección de SQL)
- ¿Qué es el ataque DDoS y cómo hacer DDoS?
- Tutorial de Selenium Grid: configuración y ejemplo de pruebas entre navegadores
- Tutorial de reflexión de Java con ejemplos
- Tutorial de SVN: Gestión de código fuente con Subversion
- Tutorial de Python DateTime con ejemplos