- 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:
info@1gbdeinformacion.com 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: info@1gbdeinformacion.com
Blog: www.1gbdeinformacion.com Twitter: @1Gbdeinfo 34