¿Qué Hace Posible el XSS?
Hay muchas razones por las que todavía se ven vulnerabilidades XSS en las páginas Web. Debajo una lista de ellas.
Insufficient Input Validation and Sanitization
Las aplicaciones web aceptan input del usuario vía formularios y la usan en la generación dinámica de páginas HTML. Consecuentemente, los scripts maliciosos pueden ser incrustados como parte de un input legítimo y ser eventualmente ejecutados por el navegador a no ser que se saniticen correctamente.
Lack of Output Encoding
El usuario puede usar varios caracteres para alterar cómo el navegador web procesa y muestra una página. Por la parte de HTML es crítico encodear correctamente caracteres como <, >, ", ' y &. Para JavaScript requieren especial atención ', " y \ .
Improper Use of Security Headers
Varios headers de seguridad pueden ayudar a mitigar las vulnerabilidades XSS. Por ejemplo, Consent Security Policy (SCP) mitiga riesgos XSS definiendo qué fuentes son confiadas por scripts ejecutables. Un SCP mal configurado o con políticas muy permisibas o uso inadecuado de unsafe-inline o unsafe-eval puede ser más fácilmente vulnerado.
Framework and Language Vulnerabilities
Algunos frameworks antiguos no ofrecen mecanismos de seguridad contra XSS y otros tienen vulnerabilidades XSS no parcheadas. Los frameworks modernos automáticamente escapan XSS por diseño y parchean cualquier vulnerabilidad descubierta.
Third-Party Libraries
Integrar librerías de terceros en una aplicación web puede introducir vulnerabilidades XSS, incluso si la aplicaciión en sí no es vulnerable.
Implicaciones del XSS
Hay muchas implicaciones de XSS. Debajo una lista de ellas:
Session Hijacking
Un XSS puede ser usado para robar cookies de sesión, con la que los atacantes pueden tomar control de ella.
Phissing and Credential Theft
Usando XSS, los atacantes pueden presentar un prompt de login falso al usuario.
Social Engineering
Usando XSS, un atacante puede crear un pop-up o alerta de apariencia legítima en una web
Content Manipulation and Defacement
Además puede hacerse para causar daños de reputacion, etc.
Data Exfiltration
Puede acceder y filtrar información como datos personales o información financiera.
Malware Installation
Un atacante sofisticado puede usar XSS para esparcir malware.
