3. Introducción (I) : Tendencia
Todos los días interactuamos con gran cantidad de aplicaciones donde
un alto porcentaje son aplicaciones Web (en el trabajo, en casa, etc.).
Ley 11/2007 -> Obliga a la Administración a transformase a partir del 1
de enero de 2010 en una administración electrónica (e-
Administración).
4. Introducción (II) - Complejidad
El aumento de funcionalidad deriva en un aumento de complejidad de las
aplicaciones Web.
5. Introducción (III) - OWASP Top Ten -2010 RC
OWASP Top 10 – 2007 (Previous) OWASP Top 10 – 2010 (New)
A2 – Injection Flaws A1 – Injection
A1 – Cross Site Scripting (XSS) A2 – Cross Site Scripting (XSS)
A7 – Broken Authentication and Session Management A3 – Broken Authentication and Session Management
A4 – Insecure Direct Object Reference A4 – Insecure Direct Object References
A5 – Cross Site Request Forgery (CSRF) A5 – Cross Site Request Forgery (CSRF)
<was T10 2004 A10 – Insecure Configuration Management> A6 – Security Misconfiguration (NEW)
A10 – Failure to Restrict URL Access A7 – Failure to Restrict URL Access
<not in T10 2007> A8 – Unvalidated Redirects and Forwards (NEW)
A8 – Insecure Cryptographic Storage A9 – Insecure Cryptographic Storage
A9 – Insecure Communications A10 – Insufficient Transport Layer Protection
A3 – Malicious File Execution <dropped from T10 2010>
A6 – Information Leakage and Improper Error Handling <dropped from T10 2010>
6. Cross-Site Scripting (I): Descripción
¿Qué es un cross-site scripting?
Un cross-site scripting ocurre por una falta de validación y tratamiento de los datos
de entrada a la aplicación web; lo que es aprovechado por los atacantes para
realizar inyecciones de código script (javascript, VBscript, etc.).
Posteriormente estos datos son enviados al navegador del cliente.
Tipos de cross-site scripting
Almacenado: Los datos sin filtrar son almacenados en una base de datos.
Reflejado: Los datos sin filtrar que vienen del atacante son reflejados desde una
entrada en la aplicación web (campo de un formulario, campo hidden, etc.).
Ejemplos básicos de cross-site scripting
“><script>alert(“XSS”)</script>
"><img src="x:x" onerror="alert(0)">
"><iframe src="javascript:alert(0)">
7. Cross-Site Scripting (II): Ejemplo
Formulario de ejemplo
• Código fuente de la aplicación web
stripslashes: filtra el carácter “”
mysql_real_scape_string: filtra los caracteres x00,
n, r, , ', " y x1a
Inserción de los datos en la base de datos
9. Cross-Site Scripting (IV): XSSV
Características de un Cross-Site Scripting Virus (xssv):
Independiente de la plataforma
No se ve afectado por la configuración habitual de los firewalls
Pueden tener un impacto importante sobre la continuidad de Internet
DDoS
Spam
Propagación de exploits para navegadores
El día 11 de abril de 2009: El gusano Mikkey se propaga por twitter.com,
infectando alrededor de 10.000 tweets.
El día 28 de junio de 2008 el portal justin.tv es víctima de un xssv.
10. Cross-Site Scripting (V): Herramienta BeEF
¿Qué es BeEF?
BeEF es un framework para realizar ataques al navegador del cliente a partir de un
Cross-site Scripting.
¿Cómo funciona BeEF?
Atacante Aplicación Web
3. La aplicación envía
al cliente el script que
apunta a 2. El cliente accede a la
beefmagic.js.php aplicación Web
Cliente
11. Cross-Site Scripting (VI): Módulos de BeEF
Módulos de la herramienta BeEF = ¿Qué puedo hacer con BeEF?
14. Contramedidas y conclusiones
Contramedidas
La aplicación debe filtrar de manera adecuada todo lo que no sea de necesario en
el contexto HTML.
Construir una “lista blanca” es una solución para mitigar los XSS. Pero no es una
solución total dado que existen aplicaciones que requieren de caracteres
especiales (webmail, etc.)
Realización de revisiones web para detectar los posibles XSS.
A nivel de administración es posible implantar medidas anti-xss como:
mod_security
PHPIDS
Conclusiones
Los ataques de XSS poseen un impacto importante sobre los usuarios de
aplicaciones web.
Es posible crear una red de zombie’s de manera sencilla y rápida, a través de XSS
con la consecuencias que esto conlleva.
La responsabilidad recae de la mano de los responsables de la aplicación web.
15. Documentos y Enlaces de referencia
Enlaces
http://ha.ckers.org/xss.html
http://www.xssed.com/
http://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
http://www.owasp.org/index.php/Data_Validation
Documentos
https://www.owasp.org/images/8/89/OWASP_Testing_Guide_V3.pdf