34
Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0/ c_b_n_a Leganés 6-7 Febrero 2013 www.1gbdeinformacion .com

Xss attacks

Embed Size (px)

DESCRIPTION

Chala en el T3chefest 2014 sobre iniciación a los ataques XSS

Citation preview

  • 1. Legans 6-7 Febrero 2013www.1gbdeinformacion.comExcept where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0/c_b_n_a

2. Legans 6-7 Febrero 2013Inicindose en XSSQUIEN SOY Roberto Garca Amoriz: trabajo como Administrador de Sistemas Informticos y Redes de Comunicaciones desde hace ms de 10 aos, proporcionando soporte a empresas lderes del sector. Apasionado de la Seguridad Informtica, publico regularmente artculos sobre diversos temas relacionados con la tecnologa y la seguridad desde mi blog www.1gbdeinformacion.com Colaborador en Estacin Informtica y en Security By Default. Ponente en los talleres de seguridad en las jornadas X1RedMasSegura. Ponente en las 2 HighsecCON.2 3. Legans 6-7 Febrero 2013Inicindose en XSSndice 1. Introduccin 2. Definicin de ataques XSS 3. Tipos de ataques XSS 4. Partes de un ataque XSS 5. Detectar aplicacin web vulnerable 6. Ejemplos de ataques XSS 7. Soluciones a los ataques XSS3 4. Legans 6-7 Febrero 2013Inicindose en XSSQu es XSS? Es un ataque de inyeccin de cdigo malicioso que puede realizarse a sitios web, aplicaciones locales e incluso al propio navegador. Sucede cuando un atacante enva cdigo malicioso a la aplicacin web y se coloca en forma de un hipervnculo para conducir al usuario a otro sitio web4 5. Legans 6-7 Febrero 2013Inicindose en XSS1. Introduccin Cross Site Scripting (XSS) Los ataques XSS se pueden perpetrar en cualquier web que permita ejecutar cdigo de scripting como Java Script, Visual Basic Scrip (VBS), Action Script (flash) etc. Para llevarlo a cabo es necesario encontrar un punto de entrada, normalmente los formularios, cuadros de bsqueda etc. Estos datos no se validan correctamente en algunas aplicaciones, permitiendo la ejecucin de ese cdigo. En un ataque XSS es posible acceder a partes restringidas, recuperar informacin del usuario, secuestrar cuentas e incluso modificar el contenido del sitio. 5 6. Legans 6-7 Febrero 2013Inicindose en XSS2. Definicin de ataques XSS En qu consiste? Son vulnerabilidades en sitios web que se aprovechan de la falta de sistemas de filtrado y de validacin en los campos de entrada. Estos permiten el envo de scripts (Java Script, Visual Basic Script etc) para su posterior ejecucin. Ese cdigo se interpreta en la parte cliente (el navegador) y no en la parte del servidor, de manera que si se inyecta una parte de cdigo en una pagina web, no se daara el servidor, ya que l no interpreta el cdigo, solo la parte del navegador. Este ataque se denomina ataque del lado cliente.6 7. Legans 6-7 Febrero 2013Inicindose en XSS2. Definicin de ataques XSS Una pgina es vulnerable a XSS cuando lo que nosotros enviamos al servidor (un comentario, un cambio en un perfil, una bsqueda, etc.) se ve reflejado posteriormente en la pgina de respuesta.7 8. Legans 6-7 Febrero 2013Inicindose en XSS2. Definicin de ataques XSS Riesgos Acceso a zonas restringidas. Robo de credenciales. Modificacin del contenido del sitio (defacement). Phishing. Navegacin dirigida.8 9. Legans 6-7 Febrero 2013Inicindose en XSS2. Definicin de ataques XSS Recursos utilizados Correo web. Mensajes en foros. Libros de visita. Cuadros de bsqueda. Formularios de contactos9 10. Legans 6-7 Febrero 2013Inicindose en XSS3. Tipos de ataques XSS Persistente Se produce cuando un atacante consigue inyectar cdigo malicioso en una web que es vulnerable. El cdigo inyectado queda almacenado en la base de datos de una web (formularios) y cuando los usuarios visitan esa web el cdigo se ejecuta. Se suele producir en las aplicaciones que permiten a un usuario almacenar algn tipo de dato. Permite tomar el control de navegador de la victima, recoger informacin, realizar un defacement, ejecutar exploits basados en navegador, etc. Son los ataques XSS ms peligrosos.10 11. Legans 6-7 Febrero 2013Inicindose en XSS3. Tipos de ataques XSS No persistente Es un tipo de inyeccin de cdigo que no se ejecuta con la aplicacin web, si no que se origina cuando la vctima carga una URL en el navegador. La URL es modificada en la web para que se obtenga un resultado distinto al esperado.Vulnerabilidad encontrada por@Dylan_irzi1111 12. Legans 6-7 Febrero 2013Inicindose en XSS12 13. Legans 6-7 Febrero 2013Inicindose en XSS4. Partes de un ataque XSS (Visto como el atacante) Inyeccin del cdigo: Identificar que cdigo se puede introducir. POC: Qu puedes hacer con el XSS? Robo de credenciales?, defacement?, etc. Llevar a cabo el dao. Suplantacin de identidad, envo de Spam, etc.13 14. Legans 6-7 Febrero 2013Inicindose en XSSVale, que s pero como atacan? El cdigo se copia entre dos etiquetas HTML: Solo debemos introducir el cdigo Javascript que queremos ejecutar. El cdigo se copia dentro de una etiqueta value de una etiqueta . Este cdigo queda situado entre comillas dobles de un atributo que pertenece a una etiqueta HTML y no permite que se ejecute, as que es necesario cerrar la etiqueta HTML e insertar despus el cdigo Javascript. "/>

Al final del cdigo se introduce una etiqueta
para evitar la malformacin del cdigo HTML.14 15. Legans 6-7 Febrero 2013Inicindose en XSS5. Detectar aplicacin web vulnerable Detectar la vulnerabilidad a travs de formulario Ej: 15 16. Legans 6-7 Febrero 2013Inicindose en XSS5. Detectar aplicacin web vulnerable Detectar la vulnerabilidad a travs de URL Ej: http://tuweb.com/index.html?nombre=Alberto Segura. http://elladodelnovato.blogspot.com.es/16 17. Legans 6-7 Febrero 2013Inicindose en XSS6. Ejemplos de ataques XSS Robo de cookies y sesin Mediante la propiedad document.cookie podemos sacar la cookie que est usando el usuario: Si conseguimos sacar ese dato fuera y el control de sesin es demasiado simple, se puede realizar un session hijacking o secuestro de sesin. 17 18. Legans 6-7 Febrero 2013Inicindose en XSS6. Ejemplos de ataques XSS Los atacantes consiguieron modificar (deface) la imagen del video de bienvenida del presidente del gobierno por otra imagen, en este caso Mr Bean.18 19. Legans 6-7 Febrero 2013Inicindose en XSSJuan Carlos Garca: http://hackingmadrid.blogspot.com.es/2012/05/hacking-madrideasy-xss-and-cross-site.html19 20. Legans 6-7 Febrero 2013Inicindose en XSS6. Ejemplos de ataques XSSEl atacante mediante el uso de Java Script consegua la cookie de usuario, logrando redireccionar su contenido a un servidor web controlado, lo que permita al atacante acceder a los mensajes privados, agregar nuevas aplicaciones sin ser autorizado, ver la lista de contactos, las imgenes privadas de la vctima, etc. 20 21. Legans 6-7 Febrero 2013Inicindose en XSS6. Ejemplos de ataques XSS Los atacantes consiguieron atacar Youtube inyectando cdigo desde el rea de comentarios. Consiguieron forzar mensajes pop-up para que apareciesen en la pagina y redireccionaron a los visitantes a paginas que contenan malware.21 22. Legans 6-7 Febrero 2013Inicindose en XSS6. Ejemplos de ataques XSS Cuando se crea una lista nueva de contactos en Twitter, si el nombre de la lista lo cambiamos por cdigo de scripting, este se valida en la web.Alberto Segura: http://elladodelnovato.blogspot.com.es/2013/01/vulnerabilidad-xss-en-twitter.html22 23. Legans 6-7 Febrero 2013Inicindose en XSSTime for demo23 24. Legans 6-7 Febrero 2013Inicindose en XSS7. Soluciones a los ataques XSS Al disear las aplicaciones Se debe verificar siempre que el tipo de datos y la longitud de los campos se correspondan con lo esperado. Hay que filtrar los caracteres que puedan resultar dainos. Las aplicaciones web deben programarse filtrando determinados comandos como: script, form, applet, object , embed, marquee, img src... Cuando se detecten posibles ataques enviar mensajes de alerta intimidatorios. 24 25. Legans 6-7 Febrero 2013Inicindose en XSS7. Soluciones a los ataques XSS Usar las ultimas versiones de los navegadores Desde la versin de Internet Explorer 8 si intentas acceder a una pgina 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 manipulacin de la pagina a travs de la inyeccin de cdigo en un parmetro. * Por esto, es muy recomendable tener siempre actualizado todo el software de tu equipo. 25 26. Legans 6-7 Febrero 2013Inicindose en XSS7. Soluciones a los ataques XSS Los usuarios tambin pueden protegerse contra los ataques XSS configurando los navegadores para impedir que se ejecuten lenguajes de scripting (NoScript). Esto no dar una solucin ptima para el usuario porque hay paginas que no funcionan correctamente si se prohbe la ejecucin de cdigo dinmico. Una solucin mas viable para impedir ataques XSS pasa por disear una pagina web sin vulnerabilidades, para ello el diseador 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 cdigo 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 produccin. 26 27. Legans 6-7 Febrero 2013Inicindose en XSS7. Soluciones a los ataques XSS Ejemplo practico. Vamos a ver como disminuir los problemas generados por los ataques XSS.27 28. Legans 6-7 Febrero 2013Inicindose en XSS En el ejemplo anterior vemos como filtramos los datos que el usuario puede enviar al site. En la primera lnea vemos que se estn omitiendo los espacios. En la segunda lnea estamos evitando problemas con la codificacin Unicode. En las siguientes lneas estamos omitiendo los caracteres.28 29. Legans 6-7 Febrero 2013Inicindose en XSS XSS en hexadecimal Con lo que hemos visto anteriormente, podramos parar los pies a los ScriptKiddies, pero, que pasara si nos encontramos con alguien con mas experiencia? Alguien como el de la foto, que ya se las sabe todas, podra hacer algo como esto:Aqu habra un cambio del cdigo, de ASCII a Hexadecimal en una peticin GET. El navegador lo interpretara de la siguiente manera.Jose Selvi pentester.es29 30. Legans 6-7 Febrero 2013Inicindose en XSS Por eso en la tercera imagen lo habamos evitado omitiendo los caracteres # y % ya que directamente los convierte a UTF-8. Al contrario de lo que muchos piensan, un sitio web que utilice SSL (HTTPS) no esta ms protegido que uno que no est cifrado. Las aplicaciones web funcionan de la misma manera, excepto que el ataque se lleva a cabo en una conexin cifrada. 30 31. Legans 6-7 Febrero 2013Inicindose en XSS31 32. Legans 6-7 Febrero 2013Inicindose en XSS Todos los servidores web, servidores de aplicaciones y entornos de aplicaciones web son susceptibles de un ataque XSS. Los sitios que han sufrido (o tienen) ataques XSS tambin pueden tener ataques de fuerza bruta o de denegacin del servicio (DOS). No confiar nunca en los datos introducidos por los usuarios, debemos tratarlos todos como potencialmente peligrosos. Para terminar, comentar que hay frameworks como Symphony o CakePHP que ya se encargan de implementar este tipo de seguridad, como tambin lo hacen ciertos gestores de contenidos. Tambin hay Add-ons para Firefox como XSS Me o Domsnitch para Chrome que ayudan a paliar los problemas con ataques XSS en el proceso de desarrollo web.32 33. Legans 6-7 Febrero 2013Inicindose en XSSEmail: [email protected] Blog: www.1gbdeinformacion.com Twitter: @1Gbdeinfo 33 34. Legans 6-7 Febrero 2013Inicindose en XSSPedro Candel @NN2ed_s4ur0n Victor Calvo @aetsu Juan Carlos Garca @secnight Daniel Garcia @ggdaniel Yago Jess @YJesus Alberto segura @alberto__segura Guille @guilleSec Email: [email protected] Blog: www.1gbdeinformacion.com Twitter: @1Gbdeinfo 34