Piratería ética: secuencias de comandos entre sitios

Cross-site scripting (XSS) es un ataque de inyección de código que permite a un atacante ejecutar JavaScript malicioso en el navegador de otro usuario.

El atacante no apunta directamente a su víctima. En cambio, explota una vulnerabilidad en un sitio web que visita la víctima, para que el sitio web le entregue el JavaScript malicioso. Para el navegador de la víctima, el JavaScript malicioso parece ser una parte legítima del sitio web y, por lo tanto, el sitio web ha actuado como cómplice involuntario del atacante. Estos ataques se pueden realizar mediante HTML, JavaScript, VBScript, ActiveX, Flash, pero el XSS más utilizado es JavaScript malicioso.

Estos ataques también pueden recopilar datos de secuestro de cuentas, cambio de configuración de usuario, robo / envenenamiento de cookies o publicidad falsa y crear ataques DoS.

Ejemplo

Tomemos un ejemplo para entender cómo funciona. Tenemos una página web vulnerable que obtuvimos pormetasploitablemáquina. Ahora probaremos el campo que está resaltado con una flecha roja para XSS.

Primero que nada, creamos un simple script de alerta

<script>  
   alert(‘I am Vulnerable’)  
</script>

Producirá la siguiente salida:

Tipos de ataques XSS

Los ataques XSS a menudo se dividen en tres tipos:

  • Persistent XSS, donde la cadena maliciosa se origina en la base de datos del sitio web.

  • Reflected XSS, donde la cadena maliciosa se origina a partir de la solicitud de la víctima.

  • DOM-based XSS, donde la vulnerabilidad está en el código del lado del cliente en lugar del código del lado del servidor.

Generalmente, las secuencias de comandos entre sitios se encuentran mediante vulnerability scanners para que no tenga que hacer todo el trabajo manual colocando un JavaScript como

<script>  
   alert('XSS') 
</script>

Burp Suite y acunetix se consideran los mejores escáneres de vulnerabilidades.

Consejo rapido

Para evitar ataques XSS, tenga en cuenta los siguientes puntos:

  • Verifique y valide todos los campos del formulario como formularios ocultos, encabezados, cookies, cadenas de consulta.

  • Implemente una política de seguridad estricta. Establezca la limitación de caracteres en los campos de entrada.